Forum
    • Categories
    • Register
    • Login
    1. Home
    2. clevername27
    C
    • Profile
    • Following 0
    • Followers 10
    • Topics 336
    • Posts 1,615
    • Groups 1

    clevername27

    @clevername27

    621
    Reputation
    532
    Profile views
    1.6k
    Posts
    10
    Followers
    0
    Following
    Joined
    Last Online

    clevername27 Unfollow Follow
    Beta Testers

    Best posts made by clevername27

    • HISE Look and Feel Tutorial and Toolkit (Updated!)

      In an effort to help teach HISE, here is a look and feel tutorial/toolkit. It contains the full GUI toolkit from my plugin, comprised of drop-in replacements for HISE components (with additional formatting options), and some specialised widgets. The code is copiously commented, with more descriptive text than statements, and weighs in at over 1,000 lines. It's presented here as a snippet (as developers starting out may not be familiar with GIT).

      Screenshot 2023-01-28 at 17.17.47.png

      HiseSnippet 11780.3oc6800bibjjXfZD1UDZWcZWu2E24mpig2cH0.hAD7yY4NmHHIvL3DIAW.LRZrr7bMAJP1ZZzMttaLb3s63XV+z8lsC+pcD19gMre6d1Osw8KvQ3+.Wn2cDa3HbDN7K1Yl0Gc0MZ.zfCGoYr1YztRn6pxJqrxLq7qp5S885xCB77ysvhctZHO2B+f7suxM7hCtvx1MWiCgmmuimmySsCys+UCsBB38xsvB25A3qWXw2MG8me+GuukikaWdzixk6S8r6xOxd.zS8SOcuOw1wotUOdG6AFsdi8Zz0y8.OGuQ.pbq7kyMzp6SsNmehE1r2IetE9d05YG542NzJjGjag2ceudW09BuKcEs+SsCrOygi+XsbsA.IdbcOmdHFiOM2AWX6z6T0TNHWtExeZDA3VBBvOI+w18r0OOhP7gzKXQ8vjdrv6DG8tULzaMSzqrA5kBJsfAJ8tBT5GkucWe6ggQuAwm2OeC2PteeKfrahJh1l6c99+Gye2Ohs5M1eJTfcS8mzfzCaztF6np0YcZ17nOoQGV0SNj04QcZ1pQ0iXOasRkKsV1fz0EmNva3U91meQH6u++BqR4Jqy1GXVY0dlka.yxsG6B6.VetuOOjMzxInz7L8ttH0ob+A1AA1dtLXzuf6yO6J149VvReuhr99bNyqOq6EV9myKxB8.D8J1Pte.zAuyBAlWa2yYV.j5BSOrsg3zHvqe3kV9bZdArNdcsAF2drddcGMf6Bbw3H121gGvVN7BdLb5qe4+t1x9+0u7e+Jzv1ia4vrcYXaUujcoc3EdiBY97fPe6tHLKBMpqyndHVIflpQNnpBw3h.gVIBPPOJ.lYH1WjMvqmce7eyoo6vQm4XGbQQIj5YiCyYiBgWEfupK2E6KLGuqmOKfCql.brg4DQGhvTpM3XIgzPjpGJoiDRb4EdChO4PlgQ9tv3yot1yCnpz.+U7tgBfUf5ReOGGuKwYLnjCTS.Swfe9MfHy0kmpCfSVm48LNQUEr7tdg.4RPFPFjgQ7cxWEbgEP+NiKW.gIcAbA2xfn5iy9fPf4zF3FF54SS0jD6RulmcOrFqcy5c9rpspwZzlcZqleZiCqcHx1VsM7DfmsH6yZz4gMeTGFzpVUOoyiYMqCZbdL6SZbxgEY097SaUqca.ZMawZb7oG0nF7zFmbvQO5vFm7.19POOoYG1QMNtQG.zcZRCqDXMp0FAWB753ZsN3gvaqteiiZz4wEY0az4DbPpCiQU1oUa0owAO5npsXm9nVm1DzFhZ.Oo4IMNodKXPqcbsS5TBgTiSfGyp8ovuYseX0iNhF7pOBlQsZiX7AMO8wsZ7fG1g8vlGcXM3g6C5VaTc+ipIFMXhJT4cT0FGWjcX0iq9fZTWaBfpE0VIV9YOrF8HXPqB+yAcZz7Db1cPyS5zB9YQIUuYqN59+Yft7hrpsZzFIV0a0DFCjXCcqIAInymTS.JbgfveEcRu1AMEe9iZWKBwNrV0i.X1FAh4BcoaPNnUuI+SATbCjmf+wBzIPVRoDHdTCP4Wuy4fZt99f5kAflamQmaCJI664OvJLTnYIja08BgpjfvqbPEI.DnMLe..itdCF54BJsgcjZDB5g.UefznENh9bqdqF5sJnCUNV.E1w9LeK+qvAgfBP7JvpC+fFH.7EowpqWORKGH1xcAUufNumw8OyKPotDZyyr7ssfgC.fKXpVfnY83AjQH1OC2S5BKTGBLebJwp1Sn+CzZ.pwwgKBst.wXXaN2PeudincKX7mOzQtGlMRlF41Uzc6vqDXw.u.wbxEmy9HZO.2Ai2CnFt.AErOBIWtv9ZvdPndIKe.UASmBJhXp84tvzvYDOn.0+..YP.KGZNt+H7PrWgQS3fRvJaMC7G0YB6yQirRunbcNfLJDIDgrFxgDZDR9sCKvja3QqmcsbelEfWAdrq7Fg+DwC.wwoDsUIzkRr1fNXtPQM7OELXsPfB7QfgmZdoF.k8YFpsITZHuqce6tfYAiBB8.U8VBc0M.Vl+5Q19n0E5MCFXcEp32h43cNQB+pQCFBqI.t2uOnmGVxnAFPYeZnQVGj.0DQS3o2FFeGtkuqb3OyJvtKLMw43.Z+mKgMMPd8tWv69TFZOPA1gVOytG6gfkE7qtc.RFc6Y42SXL1Peqt39RAryGY2iSi+k9.yEsMKx45JYtAUJdC3xECsbffYwmSLHH0MPKOnZQQ.G7f93KZqZx2CVNdlfbInQAH3wV.DtPSZKLePYZKXevtibr7kKIkXc7.3C.lDzfV368LbNXQxx97K.6V.YmBj3Mtxh7jHwQtVQz1iQK8jbXpoDsPShf5kUT3D0ZvM36E1kXKmsc8FgNRfnobBglYhLVWh1+hKev+J.rzD7mAQCfeyA5.XSDvPiKgQKdVtmSTdMm.XQe.IHRDotVnxCgpLzVekJFAJCycG9yEJLv0h.a3AWw54aQFOAcpfblhVQBla.qDTCg2L.G+.X4giTSPhw4JACnZgWnn.UNfpUbu.cWUrraGPu25LaTqhXd3AZ4nmpFQf+yFrcqqE3jG.EzQ0RrGirufrwkfQfX+HxuZ4GZOxwhbnEzZBfE.kBCRXFLmE7nfihIIAOP15PKDHm0.bwFvEqqBj1ZhBlDgcLocTWuEqMrw5AOTn6gTd.nCxiEQ7UJSEluGhF74xMXmfobiC2EefFrGTE3WJDATBYDSXfJbgMnNTO8kyBxmj.RKKtUFQRSNUi1FYY3YDeMJcnAQCMEVvgUZEXospqpQIWREbT.9tJXiquT8KQMuhHliBFg6+.3AxvI1rf3ij5rshH.F8UgqfaDbAcyNf7T.2qF2kXDHvApE5hvlAdoMJf3ZAe0B.YKXMl3HkZis5gqsz16DiojAQJPJzmgV.fffTvQavUTv0P5wJ.6LzkOTn1FTnB.StShqU3Het1WO0VCjAAg.VBzZGZO+u9k+mXUI62GHVMQpSjoGzXgiaTCVdo6tzJkDlzXgd0DfFdcliGnz1rQezRqfSsyPhsj31iTFQdiBKvfmPg1mOBVknoKBEx6wH7sDa+3fUrzw6Ij3IugsPM.znWRLap8bfdKvYfn2kraHPfC.5.aABFDEvIyhjx6xN9I+rVHB3XyGgDNfp.hbREm.6p1kX.JbzSUWzXfQtbNtiJvkQq6jeL33JbjRObfFIvk8Aq1GHXwGaPEumWOlyntOUn5EXHwd.NaQNmeUbUUjDiuuf+C9oagHtFfrLZPI1wWQJPeJI3YtC5tzd6BpoHVFmZE5yg4DNtX7A.QMNxkP6TijNvdF3gcIict4LIl8Q2sPg6N0+vdPsNcPeGZ2AbKBbvZ5Mu.8Or848w8QHCmf8RrcvPDP1+I7BGoflaWgZzjgrnw.qy4nE.N.GEBKfGf1C6TeOxcdwa.Et2F1uez4PiAAJsIIDvEKfVryflhrDnyykPX0gzfdtmRAnK+4gfZDgRjkkgWkcfGseQXvJB.IMMgKEogMNj3E96vK8jSnkAcO1iFPcAG4UzpHDM31xn3PlmafN3159BIAwddBJVvetfXdC9mYrXqC3G3THrbeRm1rrrXGmk5PkGGfHg38cHa85pHpZsGBKjGAhefnl1vIIafR0yqEZPBTlDZ0K5TCNj2G0bE+MkJPSBvQ4CAohmPRDeN69rx6lxKdL7h0R7B3eAtXeeVkDO+g0nPDbe15pWbPyiOs4I0NoyS1+AGbTyGAtcaLNQusQmZGePSnAsVyb7RqAULG3nFzo1m2Qz.w3aL66w6aMxIj1t0WO62+Qc5z7jOq1QG8jNMO8nZ067jGzp5gMPfoAT4mWudkcf+d3ti2s8aB+mGSgEYBccis2X6MSP8ZVu9SZbxgMNnZmlsh27Mqt49advtorzpDoOTNUp6oVgOxypmg1Hxse7mKIT.sjTOi1D5gwU+TnlKXjGujC.FDnUCVdoe0osZ9WV6fNOoNEqmW387qNm6VxmeN5xQovv9KUjc6lzSaId3sWY24.RnVk3fYe3IHLLV0TyI0xmdg6vZ0q9ni57jiqcXiGcb8lmfbbKECcVZ2DsceX7i2RbDGqYGUc+ZG8Drgsa7OsFxIVIYSZeb0ih2jx6NS8Q.u4QXf4DLOr6d2aF8QvNtmMJLTDIecT.RXkz.q.z0pPuyO2gaZ9oOs4VQZS.axDWv9W1.tbuLNZoK.HgUVJu2wPp3hV22mBjg5kn4+kXUCHfYEeLKhPW1uPbiJGNP+6QgVpOmrrLg00WgaufPBw+y.ixYRaJvfCHmAoRjZ3hNKftAHx7G3R6PJrBFTLzQkAVCChbe5.oSAKq15VAkUPaWPcm2VQnUC6YmKG.oyh.V5ShSDsjOP9VoifgdCwLrzyFckPteq.dnCAinLtknqUv4MX9e15GRViFxQt3hO9hEeMrmyAvF7gnkjBW9jyew1dJQT3MOAwIXcLXeAG58w8eBgIRotD.NxCLu8HOumV0sWcN2Y4wk9McorTgwgIpQxFYzpKazxKgd12g35DMAzvnfvx.kb3ETPhDH6JreUgEKrXJLQ1X1FjAvR1D4r1HNjQAtSXKUbJwsCjQMHzFXVWD.Bzb46pBvBnGRRFXFg0tlu9gbJ9UwZvWDaG1uLV6+L6dfDRpMm1nNQqSroeJ8R7t3cqcnke3imR6eL1dhT0lGFOXQ35nQTNMf5Ad9tb+11+Mb.xaDa.2mDnTys0h8tFJu8a1uOFHq6y1J9bj63zBDa.WAAaEJG6cMc08VJwP68Vs15ate85plB.3ARAOQq53M7Hd+PkIA2C96ja79jnaK4xHYHvZve2W1Av7YGQC2MUFPoDSag.trIGdEvkICE.n9jqhc7UTv6QOSQNMhKDo0navJc8OzJjQvHzdXRe3jKGB.bUz5KoI9iYqUpLaU1xxG1CCKzGwJWpxJreN7u1I82sabYFKUbNzpxHiThz0sF4IcjpO.mTxpkfkWEssNP1V9KjJqKg9jT0Y3EVJDv.dEUymUJlFWewX7zEYY.jUxHHExteolDbHnORrQiRaczTCYCZ4MxE72uErcikKn0Z4HMDEGSFYkoxtHDXLjAC0QXJAAULkTSR0VYiiyp8zh5LpdcLT9Kx.I1PSUBR03SyhiqA.2aXhSbTZufICGh6Q7Z.UdpLTSTVO0EZ1cXKurod26x.gAsXfglG3ErUVINgvn2Rs7Sq6Tumlxkhioua7m7kJZWzxpfrgPNI6XMGG6gAouj9M9LOSSsoHP7oXJ3XZs8iwcqLjxH1w19cc3xPhJUZ0iOjSQqSEKzHCvP0q.EztuVIHk0O18uOKzeDGru.T6Bi53Bjp31LwLAvVVF0aQp+nfSpLjYEXLWLZODsN6w1YaWFNmeAi6DvQbQfIORlGBSuhMLjU.qU0VZO1fMYuXgUiWHoxU68UfE.BieMBWsxH1HpP.lAnwCsdpJrFWOcDhULkMtvsn1dkTzqI3ODKVZJ+MhrvXbyqlpEKqDmIeVhHWOnNqlm01AhYKV3EqLKubIOcwvscX0VGlAOcmGuboZcnGXO8pfvfQFV0IX0HYtJO0nbogo6VlzOxyTYZiT9AF5IBJB+4feDngTh9Jb00NTjtxAV1tXYuAO31B2R0MWDMeLBvIDWMbhTlpmjFDivIxChF2lxfCF5etK0FKccMPY1v2ygQr1NfKSD50GbZBm++bIgBy4vwQBRf66TvboRrRvvSxVHz5ae9HeQ9lWojpu5UcYsKvVF0APdc6F0pCUN7q.lz0YbXjhOf9FQxEV4aYmzQ7cZNpiue9bVOga2wAvLcYOkdG2wcENZFkja9.GG237zciewH+3UxUYzOd1xZEtBGwUaGiCQaYdlJr33P9Fva9By1a9a.m4+tgq7ldLG0VR0v2bN5iaMglhq8ye6I6m+ZajdLBL8xu98JeuxQd4GugfFEZL1L9Rnmu8eCvwCL4j.oFUhObepLgscPAZP5vmqa3pp4jT3mbfB28v.FyJdCxTPj83MHS7v7DugXNPRFKIdByxGw3zi9HqAJcn0RCxvf.MFhNQDG.Mf5tfUW0y3ZqJylGouI354hyv2yES57odJq2IPU.NuZNhFSZ3MFOKIVk4voxa1YQVPyEKjonrwvUwnB0RrlsLZFyhLCm7DFn0C1vA6yhLgaUMLqaNbybYy.C4HWgHiGi4Kjx6GxYLYUaEp6l1QnWGwmSfxoEtDUII08BvFNbzmD+JKkPwwdCMVbQNAKm4Mw575RarzAQGBvpKyxMDqLP6AwsCJE0TrkyxDGvxxk1j797EEtVwBjEKXfI17H8HhEYC+Q3bWoYJcd5TYo0ArXL9YzsnQRvjLbE6JJuNAEcTh.LXDQAc3HGKnIXvRRIlFiEQCczLxZLIXuXBwfI8E2zVayRTFX3B8hiwn0vzC.JKs5roJJpxd9Ok6x0U2CtgoHpSBZmN+pDE2nRQyHxu7joLJ9SVTTazbnYNnHwsO6Np0zD1Tg5puwh0AAxLGpCp0YrYeY5BUnIcrirNi6jH35X0IjXGcrvGVd7BTn3DpvfUDgnKMYzoHft3D3sLkPMbrruM2Ay1deL+9Ekp3rCzp5cP5uS5UW5hSM5looaT11nweECg1LwxNFDPN0sHV0WDWFKhPP6tFIagyQ6Pstc2IO8t9Xz5Rc6IDcvFkLkIUcnJy.YjLgUQ1jDiFyZm6LUuQJNCmPltQvK4.C8RjctYKJeXf9N3g0N3S1u4meCUKKx32HObBXkN0yiG3d6PYsMKNEGm487hH+t9jrLv5obfsmy3VA1xX7wc8Fc9EhbLZIp7MoHhfCfpTkTCIWhvwQAL7ODRt2.BI2zh4FFc3yc87481UE5Ui07h5izjtdnrzF6VhMkvv8ZMDbySczbfjy+5TAMI3LiUKMJ3dSD2s+PX2dinBZpL+UPSrZfod88qlnbYFK5XqmsnisU5gMA8bDjC2GXmOTbHrRsfEz4ITwiJxZYBumkGNLQosf5QnCdtKF7Ia0IzhpH+.gdZ6vTC6T17masIY6+Nojgw9hoIg4eFUKlrKD7jgWhm78y3csTVpQ8TYDWX.2ouHcW9J+.Ea4cIWeJCPwS5TA77Y6BY1iPlPnYlgHaRwCaxUehNMHiUNIyesnHN+mVmagGLsK+FhxlVnGeMPYydvGSuxFZDWlAmqz+MYPLMwbi4X2TrruP5Usv7HUJV.nUfrHVNexkITeMcQS4bQyJkHu+3I+D0Yoqbd8zyDqxtzk1V8z8AU6+6zZjbCLvc3JrOJ0VtxbzzIHE+hT4sFya2Xd1vbv2.leBFaKVLEmqWvF73bTTi+yuOaokVYwe0XQfgpq+9pS0V.fPIYAPGoYykmzoOHSKbIo5r537KBW05R9S4ab17v6a.Ow9ciw6TTx6iSOz8pUwX.S0GPLTIgygrT8NTtBmMW.SIqG.uwT0CE4+2KlsCfQU3wmbRy8YYvV2qaYb7TWuytdEwQficO7jv+sXQb7FpqhsUW5DJmDSohCnNQ.4sDOLEK227E8Ax.dcJ2iT6WbOLe8WjGiuBrOdCYvZNjK4clKmPaKkJ+DbtkUGQaIcrj3n5E4Up55WPecAnFWRjuPxwaLGTYBOTa4A55tpMs5a3gJKxE0uwOmGuh9nxlSmTYWOuTYyqaprw8SctcTM85wnbY7+IQ.YPtw0bY7LQsPQs+yqWem0g+pJBDU7dSsCx5fnB723GNDr0UoRQHFlbvZveqLVKO1x+b6nBfQrpc2MlfSv3l3ZWfM6Qr1K12FaqJfsQ0JxNwqpDb9jZCiOmDOVTzszFpvbpTYErbGM3Ltey9GB6tMvx4Tba2.w4v0L4xol7CRfO9IQos714fLcKDOe7JY2aKNEhnQRR8ez8VD7O99VpiZBBQI.khHeQRxcQ1jdRZV6F0pTLJlUIkl8kxopxRQSM12VmXDaWwEWAEwrrkszTq.fn61pj98f29Bh9iWEUmw4trtN1BO1vKIE5liRk5evLm0JW9mZjpU50p9iuemx+TUJaThuWPC0u9Wq9sD9X1ahpo.veIijzD8bvCJ34Kp7F75dddD0Su.F3M7CcxRUixkzcgU37VpAYpRCLDfuKqxjd50qjCDrXqNcF0wd8WlLMwSHa6XlOzrOTVNLdMXCsk+SKxFQLnRBqlokTyJtcirBkGrWklxRrC8PPS0chneF0duvy8farpdHg+ihc2SMexrkSnUXBA9fzFI7PkzglHdSjIUyJ8oSubclbFTibxSBAsuAygykSqRTvA1L2+FGLCcY.HMQWljwTG1ImweyUkXNIa3D9j8AWcD5mVtrmqTglt2toGKkz1hs3L1NMwlAYATi4SLc8MNQNQhei1idLp5YiGei4K7FwumAjEJvbVxNiwSqJtLQHvldrQll0Xw4jUieyIWCPZF3rLxS0tNSl35z9yFA0CusdQMedzlTtAnaC.gVX.D5eVOgIPhKwGkApf2LfJSNdAL0SDZ06yjWlEhq9xNdsE.NV7RKlpcUqnYzJELpee6mu6bVg.nh1D3yqfvwDrfLNC+ctIkLDTvp9cw2ING.noOVfI.pnERWVizIY9Ydd877JwNEb5P4+LdCW4ICTi5F7ifCcKSS2KEWkLrChKpu.0cYkCd2wwoa7D7JmByNlNg.xEGBqDbMV9cUNkqcpa7CGVhSMAevvP7lXDlVjF5nqTPDdRNK70s4CrOfNXgi437ovqiNtDpClmFGFX6ZOPdQLMv54z+sJ5NnoeiGTDQpv7HCCIRIEJdkGqH1nuJBnkoVz6095AChNXgkfQWy5F46tx4ZKmUjA+TDDoKo0V0n.1xBhOhqUSP2rRPK.8sT6BSkRanc7KJwgqZ1n6.MpLXnu4y9nXmEgSnqAVXAt2tB0iKGg9reAq7Jre1OSK1hyu+B3Yqj.SVU4sTb+avPL18oThKVFzr38T9JZZYzZL7e0Q2NxuqJJHsu4cnmFXEIt5QxJuE59sw6ESv49H.pSZKUduBZf43nFfFe8K+s8HK57Aw.RIGcEZpJ5g9DmKBTPdTOcKWBSF7hj.LcVM6ovD04Rk3TJrXb12RV85AfArFO1TFOsu2IB9EYy7shY2ch2vUiZzGUIiMCTGEicY0I3NbQCNr6Lg1PZzTGbIEaLE7C6.fJ6PRjTkb+TNeH6bOPZuj5hFWIqKcnMAcixo2HPLfEqjGwQL8DllAOOWrvqpimnKmxDzcsb7LxkSV7xD7FvkyBol9QxMRsCjWx0p4hvzL66xjRjnxMuoVNuyvMsnpiV3oFfrQk2qzecUSRTVzYC2mcQ8JrQBYMMs7.UZwpa6ZgWks3KiYCBtaDa437tE0r0wSoTb0QoW2rBCANEuKmwJCPaLfs9Bxsmm9T0Sgfg7XE8MMf3N84NVxHvhPRcYutHkzE4F2kJnlkX3fCSt.DfAhP94RHHRwcr4tuniKajKsuHYoImvWB3I5hEtMIKDnWDQXmtc5EVThpy1PcsM.wboE6d1c0DasA+qbr0FoqJ.cq3UfdI1jGlLVYrDCHM5EzeJFlP0kGagXp4XOhxmHel.u3pvltqM9Rz3MrboJ2ayDMjdb40KNdaKuNrAy5vbIikEKCuC.aloK4s44vuiQByaFWzaT9TEjrQXjwEWB8z8XafnLGwc4s.oYWtiNiodhOrHC75wcj20ngg3MPOlXOg8iQCsHqoh674n7xR6VL.+xejdernZCfMxEu9cUcxxAjKkkWKUtMzwL7rqPUnJinEXpC9UnwWbAdKjdgMXU9IPCTAcM9DHuEgOypKAEADjW7bXhIVVUbPFkWLde6RUuvJL4c7Y7DZPc7OT+uuVp+W4MNHx.imCKW40pabFHg4sTUfK3SBlPZb045URYmdMCGcG48s14vedx+JQSlyaRuob76S.x2dtH89tSBVey772u4q34uu9VF46cBUX7NYqBiWetO+857bN1ohOSGv6wNmyS9rumwi8dha1N71p9IwuVhSbsBmsiPKAGYxTTCg3rcm06tt44hPJamp6Lcntuakah68qDYqd9csdwaX2OSIWkqrKMJSOYPIqrVgo5n0K3W2j48zqEKSokKsQ4oc1j0eC8rRorsm4EWX4WamNYYhnEcwJ9czFcQX5ppwXyiE4aWG33LbdioBa96bG13qSUVOMEOw6pgxmzg43GV3E+V4zBOyj.No3JLoKeBjSvmE6F+65drXicdBh3W2TdFYlYJCuQ03EOpDU17MnCr6Mx40Mi2IeGz738axxvY0ctuS9Pu2rhcMcuqHsc3YrgtH9i8IgRTn0hbBg7kFG7WcUe20avYdm48b7dK9QAhusOzHbo2HmdhuYbz21Kvi1ywSsC3npuG90LjpLb1vQ9bmqh970INhO1tleJDoSs.Lnhu1Sg32mP02.KaW55T2751T45ZGOcz4TuBiNZfX1p9laICRoZZH95vH+TSICi.8QWQWSGhdXLdfi6AxCQlePXz2XsUHJ2kWPel2h9pyTPjwOIrMfKHznfT.G+LwxDvxBgUIPsjrj.dtElhUXVHgEUl.8zeqmvu0KjKYxOUa5OTXRxxohOuP.q.WVwQt5.kfsW7knSEUG0WaRDf5KHG7iED.odwhiQPwDjEJnQh9HRrnr8AJBt3SVo3ZzGOrWeiGpC0h9MeonqYmtFki9D6623kjtsK8YzRuhViVLO.wO7.gtr5KwGlHkZwpXqLDZAbWQiNlxgYC2YjieghHlHEGoZPEoz51hESYnzzxUzo1QUUG7vkWR93kJJFj3G9nnrADnzG3geKQMOd5wpdrHHK2RK5vldNNZQqxKIRL0Xcnxj5PkI0i0i2iHlgkRXa436TOMpn2jHjBnnKDwIRO6Cx4xCY5DnmwSoFHStY4eZLKGVQx4SDcU91RizqNatwL6HPEbbX.DeJpEir.PhKFK56An7DEkbxDsDNYKSFaUUZe7DWbyLnpLCXs9LgkImfAndQgW.rEyRk.qdsVsp0QYBZVOaXx5Bx0iA6i5yC0EoSiaOfrx.CcNp.iqpuA3+SYQ.zJ14inqbPQkPSu3qe4ucf0Umga4feH4UYm3o7qjejjnEY3mm4g1cPeaavulk3W9SDN3WWTpnVJ8M9murCZzR7Y69AG83Se3Lymz06yEj99vP+40L1mB4XlLEk4F5fyItqUze5XiRmzktT9TPS2.U8xrgKrxJ1mEM6.oYKRSzvlg4alrX7ANWM7BCDk9.1ZSERSe5qTmwckmLqF+b4mcHyK6E0N0AWXMjK9FbJtd2WQ8U0iZs37rJLbAwtP7xdumxpJxbSzJTvFnyI7ZY4G8TZmUA7D4Wq.URvRGZkeWjk1VUjXiE29LVxhQj93NRfT8IWM5ysJBJgC6CQ2vwOziFeN.U3pOxVSHbnzWdhvJHz+bnyHX5pnp1fEf5aF6NQehUoK+OZl08BK7CfL8ID9pgxYn5Yxb+I2MibuUWjbx6WJEQniXKfQCE3i5dXg9vLikOiHoEhOqSJthkkgtCmeDvkD0NJDowgJyYnWCKCk3kJFCYDlKKJU6wrRKF5Sp3VR1TIX2OVZp5HYH0oOoHSyO2Q9MHREtwDejQKNFej3qjp2vUc.sXNx47tz2.7Qcuv7qiUbKfoOPVx2THdk5K+9e+0u7eqtTunSYSHdjV6RU4Zfs5dLWcYI0E71D1uRdJZ0eoZijck2PVXZVkNUI+fxLSQ32RM0VH.Gca1pi20zxYXTZjU9QBqOJitWYBVWmRWEVaKj8P0bjXQOiEAR0jwQ2MYvlY3o8QL8qKmwjrPwnikuHw2jYY5.WGcPmuZL4D0WPdpLYwrTi2LoxBpEV6br48lTlbEyvcYxOr3fIYpRoZBK.yUGpjwdLtOMDA91AFKseadWNQLbyYdbm6iQqbGPsKwx66Iiw9l3NeJao68Az4UhhXiYJeikn2nTkAzguyc8pKVWNzVDkGL8rkS485ygZkok6qDgbVn.zf4+F5y.UrfyWFbRnXpykho8vn3lqvxjG7xohlwxgVF+HakHOBlDzho7HUfHRrvD6LmZ1A7ZHct6xDtqQIieKnkbRyzGsXMUDRvF5p8KDakHuMiTmD.byFZKbPinx7Ovq2yEEvq9HsQ6EEyfHUiI.s7iUVuIrx5ReaYoVpr9pZ6CPLU+sJhrIbEAeLgXvK0hD3nsaAC8CiE+ziD68E0cCskT4LHoAKKg8J6FmnoPq3mHPDZF6PbeoA3i41KBrod6HMqafU7KcpukqJjBJEcFoSiFXS2xG2obyzWrVoxiURxSHGJaDsunrf3nsxU2r0ZNkqCZTtzFqfWm5K9h43tBM6akBSlap+LMng6Q24QcZ1pQ0izeqvq84UO9zip0dtg10D2dMYBhNJWfE+OyJnfRnACMZce3GMvpwF0Rt7labuhrsJWVZlw8mwenK7m1yrYveHvgRhZw5f3evyzeJmQAxm5dl519XsIIkuDVd3qgBlo1uJSseUVRNCaS4eJFZXN3nbvX1fk7xHA.k4.m09LaBrHMc627yqMaZbACxP2AYf7obWJAIznuUlYeEjwjwr2b3KJiE9TZSkhp36NKJRxOkXSmpLerbmE5NaZV7uNQInbFPnRFgPkIBg0yHDVeJLxlSoIxTFGb.vLmFWqdsd160LWvS7UR+FdAWE1lIufG+iK83K3JHTIiPnxzWtzHzDIgwAmfvqQhr2qLnbWecdOakOyMgWcOCOEsSpVLFIW02JyruyfXqQhIR1TsPPl0CbVZ+L4rMOWHYi.G2q.UNMaQUF+o34ZXtWFn9N40.ipAe7kApuUxReqjdeWOK8c8z66FYouaL8kewjehqkF.Rr7KlvyY6WeNa+FYr8ojbGUbhekYH1LKD2MSegYqrz2sRuuamk9tc58cmrz2cx.Cwly4B1VyY62dNa+NyACwzzk2n0AGUKVxCmlRGMiiLmsQ7OIUjSAvXJpwMBvXJpxo2VIS8NEk4piQTDdLYMyFPRpMWL1YsGuU5UasSNj0rtv2OxAWoesfQzQN69VkWs53Z64dhWHuo6xqT.KGkWTfk7U86m56NPbJ8b39o95N1ClvajcbYQtZKJRzotg4V3cq0yNzyuMkFtbKjeeudW09BuKcysvsxuVtO0NvFzOK9QaOGO7+pbttBFeiF54hAMu4Pt724N3Bamdm56AReAd9A4fmH5TtbK7mIwJnoXBZysvGjuMEPcwUfYN6d4V36mm7TNGgv4VXw2Ef.6e1+p+mebtL24Jw57K+6+e8OLdm+PYmU93Qc+8yqcyLFHf+76maPTICfPMEDBtD.9Q4SXE+MCXFCajKLyDLIbh75hMI7j7lAaV+5AFXMRYL80a5DAfrLQ9gR.PF4P8+Glm1NjdvZWu4vGj2zdWELxuv0p+UdE6+5uh8eiYz+oSAqbCPA275wHDCFacCfGaeC.ictdv3OJeLyex.AQsrPopffwOINLDuPBHwtCyKdLOBXSBOpj.OpjK2iZbnUnErkzBxcmNUeBcgmcH+Y1c4cHfuX9C4AOMzaXtE9wZi8xsv6MYNyFQGPubO2Dwux7Gz8kj9AK+a1S7Q.Q+je2+x8hxTXtE9A42nx12aysWa60WOmQUEj3MK7dSFGiHOuWdpxLVyD81XuHz6+7uYOb2Cb4o4Ir6.VlUc+ipcX7wEsGfROTnwPFe1mXJk6WrWNi198mA5UwD8rSC89ix2rd8WA7advl0MvlO74ogMExeXi1u5HRgYfHaXfH6wMPjbkkHx+37wxODY+rvV54FwhykBqBIWR+K1CqqO7XYG8rJwVle+IIo7A4ChdxZSZV8xe4dIPh+IigD+K1aFSCQA.DGKyIep33NY973xcqsd4x26dk2Yy6kTty3My+D1j69kO66.S30mjxvx+lDS3xioLDHAu8Mg2XhZ+O4ssI7OXltqYvLW0jY9S2afkAY381SUkNhMt1o75asVkM2HWx851Y8xaty1amxdc6r1Fqs981XybQo0GsHe0cVemc1p7NqkafcudN7S8BnSvUzX++9iSHW83wn5mDSy0Obl9YFMy9Ob0ayyZ4gWQrkPJaFMSukMlraYPH.M4DgPXWu4rcwu2mTs5+W7OwlpK98t6JqPO1bdt32Cdv+G7oSfNJ1268yKNV8e8K+soItNS+0ilD+cOO6ShWl9j3koNId4bMIzKKZ+hRNmxT.DLVbZXLu9cNR6Edm74x.+IvrAOqb4s1Zs3rm3K1n712aq6scLtSDRqsFvaVYsMSXHArGWRlvF6MEENSMvFO2bFEa5IneGa2y9Htkuqf8905b1ThbNmxElifvLA61+G7m1T9eTdUNuUE9+Z4xpdoJar0Vas9lonWp7N6r8l26dSdk+5MGiYdj8qvbrx2zyw2eNBe0Dz376ly435eSLGm3dD+fLEnsIvxBl9Nko5eb9G4Fvc3cwyUfJe0IDr16uZLAqMx79sat1VaLlvcr27JtlaFpPCRvWkYR.rZOCBPt+4uVI.Yxv23QzbRlE8q2KMqV+8eb5Vs9g6MKKWdYmncvhwdFX8LdC2S84A7PQjmV3cmrgcSNrpwrg6JyejjhudBj8keVlWBTRdWCYxT7QvbcPPb9v7hjrqU5SM4A9diFlH7dyKApxDIPa8VLApxMGAZ8IQfd4guESfV+li.swD4fN4sXBzFYf.UHao1vvJn8LHO+qecpJ8lQ64lucq8rxqcsma81s1yJu10dt8a2ZOq7ZW64Nucq8rx0W646m4zXZn.sooajOeZFcmZdLSP+pMFI9v8lyPJXR1Jjess1d6sS5YwObtR0pwjstwjc3yGCW+KSvN76Zs2X4FJdzq9e72cpNvbhcEFOyO+BJaPmXMfP4p91VNr8cr59zb7d1gVxJJJM6yuNKtl6N9W4dMWbq7s3h6GLW4uNZxxbdMr31GaoZwsxM5ha7PGnKNLvrhNxHydrWuQNzkV5EV1t4ZbH9vG.+mxWfgzd+qv6pNDLKbK7Lf4FXGdkoBhEdm3E01slbQsU1nn1Roj0xHJ9ixepcX2KRGGemTvwb4dsfi2pijOpV+97tgQH36lu9mGit8ZY3+.wv+94aa6xaekKv4gC9eB8a1mgW78Of6he0t87WKF5fqvQTm+ae79VNVtcikQqO0ytK+H6A1F72C26Srcbpa0iiE.oYXOZzEK8QAWMh3M6FBCeG51wxKHFfwOQLcvKXKyG9n.dce9ecKb0z74G3Y4m5q98ebcXRlZeZaEJ+fHTcf2H2vXrA2J95v6ls5urtmSOgbTZUZ4Bu637D+j7nNP8yMEuvWvh5wqc1j2PE1WXACbbQEN1ltcYp49LtiG7DDG+w4OTbMCqdZbd4i8b8FdgmqcWyE5V7Pe6yOm6ah6oNgphe3RdZzS9I60hS2LklIE9HfYyxGnS7qIsXsrSKl150eZdA5xPAP1auJou0+esR5zXs+w4O0COy7HiZcamPfyDQhEyK9wzzOmKGpmaDdg.ne3e6+889klKuwYM+S26WNhtL1T0h8+l+q+sU22dnmik+qJkeFbxuaFYO9SxqmTuoyGiqFru80Q9dBjrP9OEzBhWRCD58Gq+ISi7qMaTD1vsivzQS0iOi6GhcJhw.+B0BFAGm8BrNPNlDLnR5bgMyu9Vkh+mm0r1WM3h6cJ+Nc14.52v+W+6fu5dheeyw3k0ky+r7R4.Fx+8lMq2Gj+W9sDB1xaD9kf+XKXWTrDLNYzf1fwcc4.x45xcvitxBuCZfl32kU0JQataO5GnKqxWtF96EjubM0K+FYLFX0026Ixu4Vn.06QOAl2tj+TKl+X72rnJ4Oe4Rkwh5w9Ic6h6QrJXwW58ox0nOqeM5yFWi9r40nOacM5y1Wi9ryT6CZcb0QgdpJzM2wmVSnfYgZJ2YW3V49+sF1jEL
      
      posted in Documentation
      C
      clevername27
    • A Code Snippet for Y'all — MIDI Note Editor [Code Posted]

      (EDIT: Original screen-capture missed the other main feature.)

      Would anyone be interested in the code for this? It's a MIDI mixing unit for loaded MIDI files:

      • Creates a volume slider for every note, in linear according to time-stamp.
      • Provides a corresponding numerical volume field.
      • Displays the volume of note (as the cyan box under each note slider.) The brightness of the box represents the volume of each note, in real-time. When a sample finishes playing, the box resets itself.
      • Allows the modified sequence to be played in synch with the DAW.
      • Allows the modified MIDI file to be dragged to the DAW.

      updated.gif

      posted in Presets / Scripts / Ideas
      C
      clevername27
    • User Preference System

      2834c6d8-d923-4bef-b62b-05811f027e7a-demo.gif

      What It Is

      This is a user data file snippet that is separate from HISE's preset system, with an emphasis on reliability. A common use would be user preferences.

      EDIT: Amended with bug fix.

      EDIT: HISE experts, please improve my code, so it can become a HISE snippet, and help newer HISE developers learn and implement a preferences and automatic update system for their plugins.

      How It Works

      A global JSON record is created to hold to the user data. In this example, the data is the plugin version, the date of the last update check, and the values of several components (including one for automatic update checks). At startup, the code checks for the user file. If it doesn't exist, it's created, with default values written to it.

      The user has four buttons, which write the user's preferences, restore the user's preferences, reset everything to system defaults, and to accept (but not write) the preferences on the screen.

      For update-checking: If the option is active, then whenever the code runs, it checks a server to see if a newer version is available. It also writes the date and time this occurred, so update checks are only done automatically (if selected) once per day. The user can also check manually, also by selecting the automatic update option.

      If the server cannot be reached, and the user file cannot be written, the code continues operating. In that event, hard-coded values are used for the user data.

      There is a section for callbacks when the user selects on-screen user-data parameters (e.g. buttons), and a second set of callbacks for when the user data is read in. Likewise, the on-screen component values are restored.

      Extricating the snippet from my plugin required removal of most of the error-checking functionality, though the skeletons remain to plugin them in.

      The Snippet Version

      I've extracted a version of the User Data File code from my plugin, and tried to preserve as much functionality as possible. I have not fully-tested this snippet—if something doesn't work, the code and comments should be clear enough to provide solutions. (Or just ask.)

      User Data File

      1b4f9a44-515e-4e09-ac7d-167113fc537f-image.png

      Online JSON Update Record

      ea0b37d6-cd17-4ece-b767-dd87d27bc34b-image.png

      Snippet UI

      d659560b-a348-4f1e-a053-419d35927aca-image.png

      Snippet Code

      HiseSnippet 5226.3oc68rsbaijcTyXN6PlcSsas4g7XGVoFSkQl51bUZ8LlhWr3XIRsjT1qKWtX0jnoHVCBvfFPxrlUU4uk7v9creD4CH07Ej2yCaNmta.zfDjhTWroSDevV.n6y4zceNm9bCMNw0oGiycbSsV11iGwRs1uNcqw1dCJMfZZmpV4Tq8YoaOvjm5fwinbNyH0Zq8oOEe1ZYdPJwu+6e7.pE0tGK5VoR8bGydriLGZ5Ec2SdxyLsrpRMXsMGp05u5I054XWxwxwGniOM8VoFQ68F5Yr5TrYeR5TGR4CRs1+VZ5t6Zz+a9lu66M58Ue81eee52Zzq6te+WyL14q1k88LCiucWit86CTcECSOG2VdTOFO0ZO3.GiwsF3bgsDAO2ja10hgWrcpV.lk2tpikANDw6lpz.SKiSBlf3o.nbRzz0mJmt9mRerogY38il19shGPh5g9D3ZeRbx6SiQdaqSdaoQdIPRqoQROPRR+tzs54ZNxK5IH87OjtlsGysOEVmzIEYaS8I+m8Su4ljRtLfhHdCXjdT6yo7BYK4.8y1qvP5aXUcgKBgS9c+1s1fr6Vas99Yyt468e.JIuW+sxhxxUJcTwlEaWqQ8VjGQJA+W6h0a2h7EjmdTiCJdTKxqNsFo8gMqTr7q+XcTd6ix26brYiDwFPcMdTOGPcC4bpkOiSLsAYNtT3quoEivGy8XCQAQaGORWFg1CEnYFExdlkSWpE4jlUpVoYk5kpzh7XxOmMalRMN9jF0qTucms2ijIimqOaC86tSh2c2DuaLHbXkROqS0FM6b5IkK1tRq8DOI6kBQeRYVOKpKPgDEk4Mf5Qt.T2SF.5TITKKw3xf5QI8cbEWLxk0m4xfcN3hAb3v5rN9blawQiJiMGFXJrzh4EM6XCaNTHKrwA2ibZqJM6T7DjxJBD4QkgKqW73JPeyMx0jO7T.dHvJ7m44hCK+QF3xwoMORPbAP7bpKoKrZbp3w3SAPMvyaDeuM2bLrQ0ErtbSOVgdNCAHF0IDHUA5C26B5CImDAcLjX2wNdqAU9VNTixltrdvFBiQzHfemfG0wH3Yal6d8renQ4TpZUBKKiF160y99POaS1Ylf9SWvDr.0LDzVFWGKRWeOOPFLPXWdYG4dkcJMvwgyZLxyDdXmVfrG7GkMoVNm04EtfLuPYBqO02xi24ovx9iIAFIcFyqjyvQN1vE4ycCgat02eoIvlLNnp3tfDmAjulDIyqsSKw9a29jYxv95PnMd1sDUIATNogxQrl3FPZrmWXZ.HHjsrW.l1dlTPTShFdg2amqta6jP218p61tSMY1a.q2ap53J2ujeUSYSz7b26AwpAJa0tYs5Oc42L69c1desyllsil875Tw00w8Xvq.5YBoNzG.pumiTvptivYcal2djbsG.pYHWP4DpMgg8ibw.zRZgvno8YBCygmIsXE7Kg4xAUX6QJZCNmHgCnlv1VpZC9Sevz9I8MI2F5TPKlK.l5NdUc7sMtQTAzShKanCXsNW.UhIm3zuukoMaBr9bYePK9uUPcSIZUWK8hYFi9rWdulrU.T1pR61BMYOhbXkiNoRSR0SqWRZ198wBYkIVHnfGwrOY3XxHK+yLsIC.wSzNCKFJA10wwCEL8GA2zE8C1Zbgrl1nLOouusTQTKOpqm+nRptkecgZPLrDNDtyPl2.DFCAqWI9bVeeKBpInPlLYy.3NOFHi0ylIiKyy20lfWte1LLKNK5l8ovk6euv8plvsdDvdDoZsiprvh22KbeGJbOoH5gTaCKVPX3v.jQhDSOxgZrYunTOfQ+SEpPQXAyX4ziZQB5MdyJuE8fx.r3A67DvEjdEvUZLvOJkxSn2nPeEL5qPqp0ujxmjhiFI6nDRJ8.xaUqec1ELWk8EEOmZZQ6pvo.kJujkYPIvsGvitLpGD4sWnSQ7ptNgAnrQ2+LnjSaLnxhyDyKf8FNtFnVMOGhoGWECY.Op1CjYDpDgQEA4k.P+fn+ZQ9QZWoUaRsphn4RvP4RZbvOUoDbuVjmW7nZkC2CmbKgx6TV91vJds95rlOmZYZPxqEbaoH.xdZxKy5C82P+wEzBQ95q3aQM+01lvZailUhBXJthdJnztZyFGO8J9BrPuRnVaYkpCz383q7mVbg3YQKUhB0SANy64n7NISlL4ikrDcFlBQ8.0lDEymkt+6Dq+6tz8eWr+IG4mHXMG.kbWWeEkWOFW+yq0phF6sv.kEVK1pFu94l7I1BG2LBq5.IiM+BSudCheWfyMiHsl4rnbuNprgIVJysGQvYmQtwItiVPRBYX1Pw+9mZAySNBwmBXKiyjHgVADxRlBoCEOlTFu8YLOYXfwxMoVqFe22r014EZIWu.2uK2yE1.M+Va7cH6YHgHBEuVpAMTnG2oMH4iBRIJl8wr7PBntf0LuI3J43WiiN2dpA9hH7hRYYdLZMQWmji0Lppf2l1sSUvDJeWFO5OpYy83EsMZbH+Dv0JVQKyyrwXQiyNBAOfnWTRYmqCofkAyHK53tzduoHvIc9jXeAQ9tWGj2jQs7fU+FmybsniZxrMXtIQ.ymHRVADPLyPoVB.Ofg.MAaFrNq3ZyPEZunYs1J8YEO4jqoNsUBsYIsDHUWE2ZrXLEBavj2InaEt.AjbC9IZ7GCqnaRDU1QRKo2Yn7NZEMAGAkKnKj8VQVcMh5xvtIc57bzlccvF44osuk09Asa5JVA.QIPqjCviLB1owKete9HGmv3LKblC2L4Wd2e8xbg968TlGgRhxInZWG.zjxxhmwBTgE5SLUhRQgK5BHFoP4ldnRH4syqcyHdy4hNwlbjZ8AeKIFNLt8C8HLbfuAQ4mtoWA8gd3j9iiSRhz+gUsH9v7ypNcBImEXEJLlgHcJPoXEgGH5FS3zjKv65.mPFgoH.Ndj9O4jZDXXFxclEQk3Lbe9IWCEsELzYPPDIEUhDwouH9DpEIrM8wzNTPtzp.oHCDOjSTA1fz1cLNiik4Sj0NxxPJSl3bTwFVXGJxUJczfer4lv.nf4IQvFiPEmhlgmowbLUH6DZTzrlypwIhtp0T0z1TyaSL6DRSpInftWTdaYiXxkDA7lifnxcXDDWRPmhWTZuti2Mf9wb+Hnp8CDJnDa1EDvbk4NpLLMBkmtpglxodbfIFfZiuj3liHRwPrLH5JFjB.t3b1wGqB9abvJ3nCGr3PUvFGiEetizEXfd4RnIHJhgHr9w.M.+KyBMA9iDuPmExIQtXLYwGJaY.z9Itic7XzMK+.zWqTSMbNX7s.mxBcLIzocENajYwmNjfWDSvPLD3sR1IrZYBEJKg52lhfMgXAlp00aJvhJTTyZAXeU8hdeFT9.gxYj4jFmTInlFWlJ+39LnbmldzUUGG.VmF.WSKR8JuHFazGGA1RxBguTSDtpRVLix4r0XQo4KpL+MHTaCBePXkdzCqi8.GN3xhbGK6c7Yh.VYppjcxKfcRcv89nbt+PFhwKvVGKuPDPVSU7+.TJLsKMyIYNKdjjCUcKBIAWopOn92ARHJOUAl+GlMInUZwgtsSKZelDL4WBa1U3uZvDmvXgorcILz4jsUPtrCghwqZHdSv.aCW+gj2H77.2mWKh3QAbQaOd8r+WXBqmltEhGUHSjEHyh51YIotcduRc6tJRcB2RPmdkAHCahnY07.oDT3pKVZWFf0kTaQfVM.p2drD1hZ0X0MTJ3dpwzB1tA4vhMKWpQ4JkI0pWKJUWKh5wUhPoLaw9vfpjP5nv3ylWalnf1qRzLx.0b5xNh3RmPVmlSeVjDMMQem78ZZEOpcjRfoYSEBVQbCToN8irn1MG2qB1hKAG3aY4Hi3iLBTfqnmFO9aBsTmwrYtTKQZlPOlEuJXOOnnNyWw9LrzQQ8ex6kWDe2K2P5LqL8O6o56D4XZOQz+zZsV5BB5RjHxdHO6LjL1HdKIyrk6rvsbWrkIKFrGYtb+3.Bzhuehpwkt9o4lW7o86qNtO7nbF92AF4c+qm1891sj+HUgsZNEKZmhGczAEK8rVj6ZTdK75QnaVh588qD31Fl947n9vvFzQ8TXG+I2TJw1EYy7FRGjRrLiEVpF2RmO3TwteHoB48xMoO.7bExNaK0RfXStwymvmeeHydTzv1ZLg8VVOeLp98CdW8LjuOg3atNPjhZUGSECFo.ti5TyPRwZYMSADeOmgTOSrAiUNgMUcqutvrE7QgjiLEBys5SkY.5Rro2Gd0U.TdZ6ZGUq8Kg8fkVUQZc5Amh9Atj6Ae+Vv++7sfC3eV93ptJ4g27qv9knDMlL6lBWGE9PhvMHnh05OwgKhXSmXuhe9pWRYStH0wafcvV1Dkl4qrttd7iA2sNnQmF0WWKYrAEwniAc7C4hBYDCdlzIU7p13StV0mXTlayjPpaKEL7t.GInupAGrI3VbTvuWXZBeyGGB6VQdUNxWRVnJo7KI4dMQRzhNEMFvmfI9Ur8j5mJ0pBLxhJky7P6WGiAIdmXzl.GhLNqOkI6vFDXkRVJCgu0liwk0yMc74gqVhkqIKd3YLZ9CQz+5j+xeYA60ikU5y5j0EUUPlDJNfef.aLG95ghzpf7XFxy5F47WUbk80wqKfZdbRWFrjQ8HVLbpALGAnxw6qlbh8FoVXAMEPqNHHZkX6LprgoIdpEHYYLNoAQaPdQMFv.EjcwSa74l7fbSGWNF4smt1hymP8B+wQE08wqlaftOfxYO5H14Lqvz0L86a4U8tPIOIphykEpgxQBLPr0VisCTESCfvu7t+Ztf2mpiXdODyolKdBUDTcSWHNc5f6ZafBGI7toWfb.qGEDtiZ9C8JTHvtawqOdASdCAsnR7Qf5KPNTZsurYAGZLVnO.pZ+VAfdPSsqZZaxGvLJqNulBxLlHIaiX8L6OV.M7zjRbLScgTgF6gv+Z3fSIc8AQCFmqAZv8Bbo.Ze9XGCU5E6UHgdX61mPF.hrL2MBOFwn1m4Nl.6A5x.kLVr9dxJcwSlOEcLcnm2nCEcOeN8Z4QqHY5CZ.ETuyDEWVz9aRQUsJLY5C2puL1wiUDhdpJYjugMdSgmOjQTXImz20Yn3AJllnRZCSL6HY1Q0WP.mqdArcxSqzNebxYCxOe4Fgbv44dTOe9FDvONvAPtlmVh5z4MBjFbJCfUAIvDJ0I54PFBqYp2A.jaRBKbaBEUzRbiFOSqD5hUbdccfM7b7cwgKWvI2UUsfAu0CSMb6x5iuUghQLyPkStLSTpxAClWs0qKnjqVm7EeAI4VDTYWHyOIav92YhsdzyG3dr8BkRkljHwcF7LnP8fVh6CK4IPB6qC6ITJ7Ku6+f778HnkEIDLdzFC0QufrMwv156OAQqa2ghvAm3c8sEUqDcznMUuh4ga0IL7PLcylMqlZzhS0IQi+gInJ4Zd.YoOYFdp0ISvoT1HBuQHTsZjwkcl3FpiRtjV7TyAZXKf4UTdwztN9dg3JX62IWUEyCTrNGt3kLdcmW.5UctPMtynFzS7TR9L4T1vGp4O2FDMiAgehSnDQm9i9LWSv.ZoPYXOlrCg6v7pfw8qI4Gy3MiIllIlEm5+vEo407o5.NicHnObCTeLngq2DZ7BWlPUenYPnX6H5X4RWD2QzO8S0O4wFX7iQvuLQ0h80TIdUzavFMxRvN9O0hkyHl8KjGPg40Hl0mD7WlcNWNQqkWDXW4kDY4LK4yfcuCjyRfAq.VBpCTurxFNExDZFsTr02RTknhsySZWfYnTrPDYonJMVU0QhyANuMeth9dNOR4xg37xAXTm9vyovbO9X1fTqTi5cZ+xSpzodi5U.Gej3VsmgxVAUAuJEUMjRV6r0VDrbhDKV2xTZ7iWmoIRzLc0F5n2FIbH9DVWuExNehijSzc7buTTRwBLdUzWzAPTBz1kj6CV4JCJCybnHHkCPicd8+2aTdevJus8+T+UB7ZWKnePlTugmNmImlJEPWNnMubXcS.Xh42JoW+Twae59q17YAmfD2LNsUelsYbNqdsY2lDd2b9sYCwYwvIBM9HKZuXdmocd1ndE6AK8FB96AlDGy2L7H2yj+lXuvgUWzCAnnCPGX.snU17pqv.JGLcAm15ksZW4XR4JUKd5QsasJeP4rrBCIeZ9NihD3ZCx4VFA2TnRlibQR0g+hvkNiiHpE8bfZki6NYNURimc8ig9JO2s7Tg95yJC8+lx2FAh4wjBJZ8l3vplCpnkgI5xrZ3D7Lj0vN+5YwtdYVxjOpe+DeVTL1S7wXBRcmWGya6OrKF8aIgGzvTq8f3encRO6OzN5eGf5IO6p0ZnicMaSuFiX1y5qCTJ0AdM7WmVCkzvuNOp6AsaDy0yDIg0JyN2rGS9s5IS5xL9a7bFAjV36vQp09LOwS+MAeIen1LqTlFoV6ySK96sS81nOeR+qOYbzEkexElFdCBuw+k+SFvLOaPzmgomvdRLbkINtNh1MDWh+NFtRkZrNhw3sZ6oArP5yi8VODnZLLo.iNGJ+JOsC.jOKUp+9+CBlqhfS8COI0zyM+iJ58.gzlff+0oiJTMch9GzmfpOGhlSOmUy9DQwcgeajVZztyrP66d0cIZ2UCs+sytMFs+pYh1+4zIWaDyhDVpQtjq42mdphELkNw84yj3pj9VvzhYMR9aVOQReYSGz7I3cS0NAd24MMO6QRoz2XOFz4EeYRiiLoU87taXrS5kc2PMp9c+6IQ0OHcimc2QvESeCCKvrzLCz+BPzxg3uJs.zSKgN8G6sea5icL7sndw+1ygeg9TO.n2Xev2v.xZyM8Fq+E76V6CR2hRh+tzmfmUbISieRBzHra5cAMp9L98aRWoeeXwMh.eP5p+o6luYeoZ53iGp0GS8bMAtkz08G1B1TrGCvtMnWDsSYsOAsnPd8V303LPKlsg3h+N7S8vswqWS8vsCdXpgzdtNc5IsNB+PA94h6.zjs3ipXlzGiWS1NkvhI844glFlc50KNnlpi6bc63tW2N9UW2N90W2N9MW2N9sW2N9cWcGwySuhphIGDaRk53SpHL2bs0pXiIUUvsl5+UFpof.

      posted in Snippet Waiting Room added
      C
      clevername27
    • Show and Tell

      As folks periodically share what they're up to with HISE, here's what I've been working on – an in-house plugin for doing strange and wonderful things with drum tracks. In the spirit of sharing, I've posted the complete UI kit through several posts, along with 1,500+ lines of documentation. Thanks to y'all for answering my questions as I continue onward with this wayward plugin.

      Simeraldrum Screenshot.png

      posted in General Questions
      C
      clevername27
    • LAF Button for Y'all — Slider Button

      Enjoy.

      Screenshot 2023-03-18 at 4.36.08 PM.png

      HiseSnippet 1619.3oc0X1raabCD.lqi2TK0lfDz.zKEED5RjJjkkkbRKfQQ8OxpUs9GgHGmTXDjRsKkDqWQJrKkcTKLPdaJ5yPAJx09NjC8Qn26A2Y1kRZWYEaI21CUGDVRNCmONjb3PV2W4vCBT9DqTGNnGmX8A1MFH0c1tCSHI0pPrtq8dr.M2mFU0VC5wBB3tDKqa8UXEVoVjD96O+xsXdLoCebUDxQJgCeWQWgdbs023aEddUYt7CEciI8ZaTyQI2V4o5C7bK6hjdLmSXs46yPwVvlXc6cbEZkeCMSyC.Y1R4NnQG0YxH4ORDHZ5wwBqRZ.cTT0js6H7bqObrFPHVKVe7H+VQi7GXumvULp9wdf6E1.crFw8AVKbUHs5bfjULjVLBo6a2vwWzSOtEjm22tlDlPZw.WcbThjkrfZI6sUfDRcgtrS3U8gBizH6iKVLOE9K25oSuxU+i1X2ZU14Izsd5gGdv9zqQ5zogYu.Mc2Mq9xFdBWt+V80Zkj9Ezg333yAuztJGl2tJ0IaJcqx4dYQTlTqB971BbcW09RGsPIylw0mc1gp1s83QhjIOs0vFammpZ9C4n+T5T.2aGZGpKOHzkHNkSOk4KXvDQ.UBqlnsT9TcGN8Lgaat9gAzd9pdbesfGTHcJPXSKvzpu94vPHpXAFzyGW7EqeIY9tIjY0jx7LgqtCHB.YT6kR19WyEs6niKPYPfvASCtl5zOPq5JBvQ.5fGObRP61JeI2ug3G4POUNgA1R4C91gXrposNLoqGeXswPckGmPhc4x1wDIhVPhHuMyyouG5vCz8a0xPT.LIKjsqxbfcGflYi6HVNtkyQWItoSfcEQPOO1fiXd84Fuyoge+oIMPHKnZMCWZDsa7P9qPW5wCc0ZnbCsOnjoqvJPurnEM6ntNbQDzaQTv87hhHYTQn4cip.8gIMY7UJIGmQ9ugJDwgQ7hI6lvQpA7rCYLWAvKHzYyTHStvUeoScNk6EvmQTK8NPs3TIZZHOqvEtr+byBiJvFVZSHFdaeUeoa5TsKDfKRCYL6Xdg8+PSsfCEdBJG28IbGMSBazyNb6P9Dq7VoTt0SXiP5ln+QUa19Zsvww8I4oPvw3i+j18EWMFnmIADi7QioXzVZL5SKHtXAiFUguylYSXasWljlY4GkacJpY6BXHvM8DskbWzXYmXZIO83XSkgClXqFW9JGXYbfHz9b2L.kmiQjMgywY+n3sqFKRdXvlt8TRNRsocT0IUpz0nToooT4qQoxSSo0tFkVCUxPJ5vuzwPSdDzHwKMehWd9DesYT7gm0QUx8UZ9Axr4RCa+SedZ5jM0p0TaC8N9JOOt+TaFyFy+pTLqre2lb+7zn3jCEDRWIYNP2d1xAxIZxJlfJYMoPePOtobUkmKlaC98kyXhXlswz4LDBhpCyb5tlLmhbdDAzIorMS9jP7im3JYNTuzjpa.YFUu7+Lqu1Tr9SqUgoYXFjFGR8Q4x.0UgeJjBdT9jorqvCNQq5QrduQ6OHVomAe1qFYxW2ZiAiJrw2uAFvgX8g1GT+vZPVhaVv7wVjyvnNDKaKIHYmv.MXoG.kFFXF5naS94Kt.6qwmWg0V3WHSTaIr5KH4+KiOeN3uTL9ei+++3ubL92nWL9ei2rv+yRv+8lj+KNXJ7+q+9+h7uVL9IhX7+G8lE9eaB9yNS7+N8+u8R7uTD+2wv+trlbuP7WxN763q9ItwnmTwP+GaWA1ysbMo4rH5S3PZqN7tX+imxi4jG+ltiFZYrlbnMOjEec8qYwH60GYHac3xhg4ZfEosDbO27zd80TF8gEdHsIWeF2HvYJppWXDe7JRAElB34GC92j.7OYNAu7k.2152fuif9i.0X3c0X8gq8vzBnj2f4GnKeiZ3t7JW7xJIufO9RFlFfwehaUi2bVFHzChGxdNt0ewq7V+yJh22ttP6zY5LtvTXDNN3+BFMuUxcr2oUKHE5w.tnc0meSeXjqw7PJ6Z3Na6wfqtAqZr2ue2Fv1YGNXcoDtFDNeu.t9KpbQrL5AZvktgEt.9YZbUrrkowUG1HoKywW8RmnChwWiYovZ.ljgO9TJ68vxzQIOXaWrPQRWgq3kNN3veYHEkoqSoafNkuA5r1MPmGcCz4w2.c9rafNe9UpC9lbaZBOnvCn2q9Ng4AYYsiDeZjvUgj+F3he06M
      
      posted in Scripting
      C
      clevername27
    • An Enhanced Knob for Y'all

      Here's the button's brother, an enhanced knob. It's a drop-in replacement for standard HISE knob, with additional customisation options. It has an auto-centre feature, whereby if you set the minimum to a negative value, and maximum to a positive value, the knob automatically re-draws itself with a centred middle-weighting. (No need to re-compile.) All code is commented for beginners.

      HiseSnippet 2156.3ocsXstaaibElxIrXsZ6hcK5Cv.8iMTwxJjR1Nxvc6ZcM10JVBVpYyBCCiQjCklZRNBjihsZ1.zWi8e8cn+p+aehJ5aP6YFdWWRML5JEEXdlyku4vu4blYF5yLIAALekB6Nd4bhRgei5nkd7YsmgodJm2QovuVcLwcN5BO1DkVKmiCBHVJEJ7r2HTnvtOWQ94e+csvNXOSRpHEk2wnlj9TWJOU5vSuf53zCaQFScyn8AmdtIyqMygs..yyT0UliMuCOkbIVn1NpJE9Ucsnbl+HNlSBTJ77VLqkilwt2KT+2QCnSbHhGLTFANJTbOlik.wBoJsmQcrFFOoCT.uLLME7rvTvuW8sTKZh7zTwWIG.kZQ17QgcxCumkCdFYgmdF3sAHUHCjddHj9Z0Ql9z47zQBe0btGm3aigzdVnDpqxN+quTsMCzviW0EeGomO7PhEZ000qfLz0KeRwhc8lR8HUcXXqdfRMCzJ8wgWM3O0s83a6MnemtW8I1CKmR7p5SltvA6WkysKUA8hARoWEJ7Efqd7dZB7hIuaZARD9nHvDB3nQiad032i9Vj9IYk7CfDiXIe+4cFeFHnVrfy5d9aNaLHodheZO3xQiuczB4z9M9XKJjQFylK77C85oK+bxmS4VLNm4Fo+AMNn0g0xqeKluEwOj8Fo1w0guGmWsNz.LvArN2yhZhAxRFKrsODe3jCM2rEQ.JWDLN1.aXsY8as.Pr2XxC77f5.3Kd0LiK1wIz.wqrQz+JQjhgoXwhuZsOnKtbPKT+ACt.07xNndc61GstVBKQs8IvZADF4vX2gvdVHaBwAYuvyjSYdUiPQ+l8tEV03Yg8sDkYffGSaMkdnOyD6zG7QSOqdfGzDbDv+.siF.zYoqsH1.wCwmQPV936odSSBDxl4KG3Nv6UKtZ7DbZoe5EouVIgGthww9KG4Pg2r.GM1YZi3KcHU9dp0TBubwOVbW.IugvkA.C3Ewrk+88RMPZdLN5urHfmffxUKt6Gv9nlBk+VTnmpJL8jvADf5LBc5LNLrPqqCY02jYbvJ9r0GNGZDA6EAHSpu4BWahOApOWM0EQbpHXbsQMnb.7S9brK2u1AUxECP.DGYX5.IorwIHzePDjonpADd7BndPMesqiloTNwMjUZrRzdEDdnnzZ5UaC5kET2.DhnfZCQpqiCcd.QakIInDZi.2AOg3DkX5K96A11.3WO6lLuBgkVDP4IKyJmUIwhIsRgk1PhZakDI3xmfh0QvxZ5Pm5QrDqTy5tJnqkwNrF3Mn8xBrUdijK0f1uwJIq81pk2TAUxgXyKAXB9rMnGUcWfd8LnOMMn+9d8ZTG995xYXnuC6rfjxu+f3wnggk2P4OhG7yJVsnFGVrEP8qwrQbeXIrVhipTqLjDhcVvBaa5CmrsD4Z9+omN26nmb5L5GJKiC6aVAc+Lp4LDMPJQlWPz3NBxUqNBEYKfpZoUsDdRlZWq73PLelVblWNcuB6MMSp2E+.Z+jGndmj3r.nDGOgsWq5AoCAHcLfy67f8aH5dTUuVtAiK.YTUGbdM3+eYNahvCwyJw+6mMb6EYSVYuLGY4RlOzYB5FYkFXX.vQkJkJoouYR.zqZDUap8Lh4cHpnRLjmg+gQlPFymXEkN2EFSCoklTP+AjdYz27Moxfr1eTHqL5iqjnfjQiSPeBB0EUwVV.DztNW95UnZvDLAZUP+OGMLctWdE2OUoWV6QpFvBykm2Wh1JYdQrmThjjljEmCbnnFAWTEl8sDru.sL8lhY4B6h5yLJoqmon7eTKUjorpP00pSjjYmLMoZY95wfiBI5oKqkj6Kpj.vJY6Wdsb6e2rByqbBGPtLP33PHExGf9fuPvGbYKBH6y9.r+gLaOPvUlPD6dfuvGpmDhGAYIJtyjV7i+XLNLcfvRr.RRwcSgdlhiv1tZa.egJ+6lUkm3rCUNj6+ohnMUfYkxIYSm9LwQSzRHBPQwM79UvNyCiLCbSTveLMBS0SzS9JAghXcEwDnIScHZaK1oUpxMxKQ6CrVishrsZld0ZGe3lMSNpd8Ja0R85vpo5vb4Sg63by6EtS218adUywmO3xssS3NoaNE1JqyD3ns42c58yfFsY4fwruvsHKVhdm2jyvymuLS8+ohW.tyYdDQ65XEJEs83lAAPKQoWyuAbNKSekXqDuMWai1qtUYgmSvMy6RFmLvSStK3h.gb0grs23XB36ybbH9abXwEC3+4LTyag6DhekPxdhhvokyeDb0seD7r2PfYX1LihLuy8n7AyIda6dCThdEHNtdDp.U4xCq+kQGVO7nCJT3L4EUiSyJRLGcuGn5+id+rxe97NXNN1SfSg.Mm3yoh4PgNjOPMIgWCvtpcHA2wYyk5F8hWovu6wD2GRtqkSe+oKSu3kpmJV0pT3KTeGyYgKQwM6857C+LzFL6c53xrh.hIE1GjBbto4hSLFoye+m9o+424RsrbHCYATw6srVGtuM3EkpUKEZvPmEvl9Fh8wtD37WgI6zs8KtMpCp0n9wFG1ngtRbaiHwGU2v30GoqjVzIbfi0azngQc8LNpVjI55G2nd8iTtWzEMEW2b5L4osRj725epx5WByWo9VlErSXd96DRbQXQCHlsYuHFwks3AYgkYunr+ucQQOVH90pCobyYaFi6rALBTweIvXz0q8aU6ZaCsARA3yU689eYtKMEnsCGZl+VLbbBf2od4B2Q.gvjH1bfGwQTknvNh0ygOqKdVjAFAsIkO7efOQCZHdtPzfFwCp3hM8Y2ZFVEPbAdegTBfIO4cWtq5aEOiLhW6qpBsVf0YVzaMMES+8gRLa1lZOAap+Dr4fmfMG9Dr4nmfMu9IXSiOqMhqws4BNyMb4.HXXWYM3BE55Iu+LAKT4+B7H1SiM
      

      Screenshot 2022-12-31 at 00.30.30.png

      Linear

      Screenshot 2022-12-31 at 00.29.28.png

      Centered

      Screenshot 2022-12-29 at 21.24.56.png

      Sample Usage

      posted in Presets / Scripts / Ideas
      C
      clevername27
    • Enhanced Button for Y'all

      Here's a (mostly) drop-in replacement for the default button. It fills the same role, but has more options (e.g., indicator light colour, inactive state, font) for look and feel. For beginners, every line of code is commented. Enjoy.

      HiseSnippet 1830.3ocsXz1aZbC9HIW0fsU0Js8cqrOTXiRAJoMYnpVH.InRHQAZSqhphL2YN7xgM5NSRXU4+79Gz8X66fC3fljoc7Aje7y6u4G6S73VDeetmQhjcmLhXj3mL6LgIFr+.LkYzrlQhmXdHdznInFiYntzgDipSFg88I1FIRr4ARrRjbKC02+71pXWLyhLCjgwG4TKRK5PpXFzSd26ottMv1DEGmBuz6ZZwY6yc4iAMZSy7FivVWhcHswRz1vzHwipaSEbuNBrf3ajXqpb6IcFvulow+iTeZOWhbQAiN.izfavcskZrDpw9Cnt1mDZ49F.WNYleXSse3WLOhZSmBOp+PtAZFEQ8GI1Xd0ay4TuBqR8hQkRDQk1RqRO0rikGcjX1NR84GMaxDDu9Xq4CMZbM1f8Xy84.FLQtg3KIM7fESoHcw74yhJjOelxoR8hk9P6eb6NcqztaGzxalJEDq7EnqvdZ7tnUkp0acQUHj0ywiOlYidCJe4P7z3bFw08.OrMETnt7QRLtoQi7puxqDypbgfOL.4R6Vp5NEWfuU4d1DOcpS.d5uxfpqVt2Kge6IW8aMZTr.76UyyhZTeLDbraxroVXHJFga86uCdmd6XUNVJ5LV4MmS5E1q.tfc73WcLXNrtjaDyQxdkfe3ELrlLrkfdEYExnRgZkiE+UHiRUgeMhmj3L7EEBjNbZ2OoCrQf7Y.RgPHm0rV2CA.ECAbX8lGbXW.xKAiaV9RmgXWWsd1.xJ6P+ahjM4iOWr0wG+dTk10PMpWuEpV8FMa2rayiaGapoTHspzPKhtbGG2.GBHfvxAKOBTk1hagcaw4WVgY2fPbSqKEPZhPAT0m6g5P.uDXOohkw47HNTentBZTpvK811d3qihx1YQ8C2zIKh26uxj5qoRBB6.h.gQC4dDjMwWU4BwCDCZ6oDsX.A0Swim4ivfdmKURoIdF01gHp...6B3WN4dkSkTwzl9QnCQXpTu2pITqPUTg8.RCPHj5mG8KzMnqxBvnFXdAP.cRUuGQd9570bnlhmoUDeo0.dIrmsKz+Bw6GwlzZhuruIXaN47IA4soiVYCwFXOoe8To7H1mBwDLC7voOelu3bcR5WxhVD1mmGlJQcdP5T0u..KAMFyrVugrCkd+jJeQfkeM.9+fYG1yqAbDY5yisq4xF1pL1fBMcrX9toeWlD5JzN89f5T20kNxOVeM5OP6DmJ.vWlknWfJhdN50fGV5kK8k06mCTeIJx126Ofy8IJeqkNEwOC37Pz9nzQyqyffhKU1NGFifJlDjnyuBRXeKpPt7fNjVBwFNfF86n74JlA8mve6FyFfFFa7QoA94tlJFTwcz.rhNpfLTuSgrgROy8Hp8cXZw6ASiFEuEQbAO2WCMkfJr0bPihpTyJ2UIzAU1gYEKUJNS5PUjrc5xQ1oG0fZQcFHBh9qHxFefUBU5VtB6NVBRMHhTeld5kb2dN5kkQgF+x3s1i+ABWzcsTzYF2xtXFlLc50YtyN+EDt18mbd+OMDmb2s5xcuu0kPMIPytqppTNSApEtGIn4GbvnPoX8gCVC6hIOPO81GeyDGBCcJwYrK1aa4nlYJijjcGhon27FjvSGai5wjHHlNWSlHQ1k8qqZhqLpv5cJjrLowDSj5Stvylp3RcXDaIISU1rnyKtS1B28ie11kzWrMHraic1bT0OzsKL7y5lCBoFjQNawHNUNxORvibDcN0TRZ9bg5RdvnKxKjEYFIGoSY3HNiHCmwf61AiKcZvzO5hWX1ndv0.lNtiZHlqG.oBQlPf5iF4Qj2WIWpX3rNfvDdb28C3WZNSGMBDZMReJiDuHykhxbk6NUGBINsUnEkEE17P2i5rAv4vxZ2I7wnqwLQT0E7c1bjCm3iFP7js+RcaYsKVV.HakHzyLJyAnLGDLSjPoApI3.yMzuuBqcoQQicPSosmJhQ0lKHGyRqFkL0soPKtU+9wtWfq0k3E61RcxacDllMdXOhWnKLDQ31pyeE3Gc2tBrkNgKBhbVSFUb7HRv50eGdifLV4UmCzP.Ug5hyON3hyZ+mAEXxuZFSLvPYJQe7BiOzrFVfCYJvePliHdBpzzRTibE0hnucdRyZD+KE7QJbCRv.y+dpB2LS70d2jnKjcQh44XBOfCP8QFFe6a5GXYoGO3IlGwsglvh4eKC4C3DrADcm6ADjOR.yGlwH5C7bOdfi7q8ANtqp3SMOgJrFDuNtQL5HDq9+PGCdVne1rd+9vfNyTvsLa7oG5a.8cD+op9GNGgEdTHuvr83gcfHMLa1.LiAGcAvRrgL2WuNubszCzgvrUK9F7ErYA45DAaVHbSigXKO9EV5JF4CO8CJHfNwTu4VRyijqQEBKNLMymKuwPpM8BKKo4+bnbLdZJ9.n4kO.ZJ8.nYmG.Mu5APyqe.zr6ZoQ97iUFCWfSWN..NotpIUhD00WgWlEZ7uvdgdHT
      

      Example of it in use…

      Screenshot 2022-12-29 at 21.24.56.png

      posted in General Questions
      C
      clevername27
    • Tutorial: macOS Code Signing, Notorising and Installer (Part II Added)

      Introduction

      This tutorial series will guide you through the complete workflow of building a macOS installer, including code-signing, notarization, configuration the installer package, custom icons and graphics, automatic updates, relevant HISE scripting, compiling, file management, installing additional files (including samples), Bash-scripting and more.

      Revised May, 2024.

      Feedback/Corrections
      Please share!


      TOC

      1. Apple Developer Assets
      2. HISE Compilation Settings
      3. Signing, Notorising and Stapling Your Code.
      4. Building Your Installer

      Disclaimer
      The contents of this tutorial represent the author's personal opinions, and are not intended as a reference for any of the topics and content a within. As such, the author cannot be held accountable for commercial or other uses thereof. It is not represented as being up-to-date, and may contain factual errors. This tutorial is not an official communication by any of the parties, by name or implication. By reading this tutorial, you agree to these terms. Apple, please don't sue me.


      Part I: Developer Assets

      In this section, we will create the digital assets required to meet Apple's security policies for third-party executable files on macOS.:

      • Your Developer ID and Entity name
      • Developer Certificates
      • App-specific password
      • Manufacturer Code

      Creating an Apple Developer Account

      If you haven't already, create an Apple Developer account, either as an Individual or Organisation. The cost is $100/year (US).

      Getting Your Team ID and Entity Name

      1⃣ Find your Team ID and Entity name in Membership Details within the Membership section.

      screenshot1.png

      2⃣ Make a note of your TEAM ID, a 10-letter/number code unique to you as a developer.

      screenshot2.png

      3⃣ Make a note of your Entity name. This process differs depending on if you have an individual or organisation account.

      Individual: Your name, formatted exactly as in the upper-right menu item on Apple's Developer website (once you're logged in).

      Organisation: Your "Entity name" as printed in Membership Details. (I'm an Individual member, so it doesn't appear in my screenshot.) It would be the first item listed:

      screenshot3.png


      ℹ You now have your Developer ID and Entity name.


      Generating Certificates

      You'll need several certificates from Apple; which ones you need depend on the specifics of your distribution vector. For this tutorial, we'll cover the most common ones.

      1⃣ Click on "Certificates" in your Apple developer account. You'll see a list of the certificates Apple has assigned to you. Here's what it will look like when you're done:

      screenshot5.png

      Just because a certificate is listed here does not mean it's ready to be used to create your installer.

      2⃣ Click the '+' glyph to create a certificate, and then select one of certificate types in my list above.

      You'll see one of two dialog boxes, depending on which one you create:

      screenshot6.png

      or

      screenshot7.png

      If it's the one above, ensure you choose the G2 Sub-CA Profile type.*

      2⃣ On your Mac, you'll create a generic Certificate Request file. launch Keychain, choose the Certificate Assistant, and "Request a Certificate from a Certificate Authority…"

      screenshot8.png

      That will bring you to this dialog box:

      screenshot10.png

      3⃣ Fill out the dialogue box:

      • For both email addresses, use your Apple ID (that used when creating your Apple Developer account).
      • Choose "Saved to disk".
      • Do not select "Let me specify key pair information"

      Click continue, and save the Certificate Request to your local mass storage. The filename isn't important; you'll delete this file shortly.

      4⃣ Return to the Apple Developer website, select "Choose File", and choose the certificate you created.

      screenshot12.png

      5⃣ Click "Continue", and download the Certificate to your mass storage.

      6⃣ Delete the Certificate Request file.

      7⃣ Install the Certificate by double-clicking it, and following the on-screen instructions.

      8⃣ Repeat this procedure for all the Certificates in my list. When you're finished, ensure they're installed by checking in Keychain:

      screenshot14.png

      You're looking for blue certificates; the orange ones (com.apple.systemdefault" and "com.apple.kdc." are not related to this tutorial.)


      ℹ You now have the necessary Developer Certificates.


      App-Specific Password

      This step has recently changed. Previously, you would create app-specific passwords on Apple's Developer website. Now, that is reserved for use of optional Apple services and technologies — none of which of usually used for audio plugin. These security entities here are called Identities.

      You now create app-specific passwords on Apple's consumer Apple ID website. But before we get to that, let's define what these passwords are: a layer of security to prevent third-parties from using (stealing) your Notorising identification.

      Because this password is a security for a process, and not a product, you only need to create one App-Specific password for Notorising all your plugins. Let's walk through the steps.

      1⃣ First, go to Apple's consumer Apple ID website. Given that Apple has several such websites, and that they change, you'll know you're at the website if you see this:

      Screenshot 2024-05-19 at 9.26.47 AM.png

      2⃣ Sign in. Ensure you use two-factor authentication when you sign in, or you won't be able to create the password. (This is set in your Apple ID account; just Google it if you need to see how, as this process periodically changes.)

      3⃣ Choose Sign In and Security from the options presented. You'll then see this screen:

      Screenshot 2024-05-19 at 9.23.15 AM.png

      4⃣ Choose App-Specific Passwords.

      Screenshot 2024-05-19 at 9.23.49 AM.png

      5⃣ Name your password. This name is for your own reference; call it anything you want.

      6⃣ Apple will show you the password. Make a record of it—you will never be able to see this password again. While you can generate another password, any security entities linked to this password will be revoked.


      ℹ You now have the necessary Application Password.


      App-Specific Identifiers

      If you do need to create to create an app-specific identifiers, here's how to do that.

      1⃣ In the Account section of the Apple Developer site, choose Identifiers.

      screenshot20.png

      2⃣ Click the "plus" icon.

      screenshot21.png

      3⃣ Choose "App IDs".

      screenshot22.png

      4⃣ Select "App".

      screenshot23.png

      4⃣ Configure your Identifier.

      screenshot24.png

      • Description: A proper name that describes and differentiates the Identifier to you. (You can write anything here.)

      • App ID Prefix: This field is data. While you have a bit of leeway here, I suggest you follow Apple's suggestion of using a reverser-domain name (i.e., com.domainname.appname). Ensure that your data does not match any other macOS apps; I suggest using a domain name (minus the TLD) that you own. For example, if I have a plugin called "Fighting Ferret", a valid Prefix would be "com.porkinsrocks.fightingferret".

      • Capabilities/Services:Select the specialised Apple service/technology for your plugin.

      5⃣ Click "Continue" to complete the registration of your Identifier, and record your Apple Identifier. Ensure you keep this information, as Apple will never show it to you again.


      ℹ You now have the necessary Application Identifier. Notte that for some Apple services, you must now go through an additional application process.


      Choose a Plugin Code

      This is a unique four-letter code that must contain at least one capital letter that uniquely identifies your AU plugin to the macOS. You'll use this code inside of HISE.

      Unfortunately, Apple no longer maintains this database (nor even active documentation on this topic). Regardless, you're still required to have one for each AU plugin you distribute. So…make one up, and hope nobody else is using it. Choose something based on your (or your organisation's) name, and avoid anything obvious (including variations on existing company names).


      ℹ You now have a Plugin Code.


      posted in Documentation
      C
      clevername27
    • RE: HISE Look and Feel Tutorial and Toolkit (Updated!)

      @DabDab @orange Thanks for the info and kind words. I've added a "getting started" section to the beginning that explains how to install the fonts. (I've likewise edited my first post with the updated version.) Cheers!

      posted in Documentation
      C
      clevername27
    • Who Wants My Plugin Code?

      If you can finish it up, the code is yours to release commercially, or otherwise incorporate into your existing projects. My purpose was for research, so I'll have no further use for it.

      It's nearly finished, but simply don't have bandwidth to complete it. The plugin compiles, runs and works fine. But some things are not fully implemented. Stuff like how notes cut each other off - basic HISE. I would guess it's 91% done.

      The code is meticulously-structured, and consistently-formatted. It's ~7,500 lines (including comments and line feeds), divided into 35 files (mostly LAF). There's also a few minor tweaks to the HISE code (e.g., getting a component's ID in an LAF function).

      Help me finish it and it's yours.

      Basically, it's a sample playback instrument (big surprise). Here's a quick walk-through:

      ezgif-1-14c7246e37ooooo.gif

      There's also a Home Screen (not animated):

      Screenshot 2023-08-12 at 4.10.41 PM.png

      Some interface examples:

      Nraf6oE.gif

      ezgif-4-4750bb0b65.gif

      And a code sample:

      HiseSnippet 17234.3oc68sEjabkcX.jro3L5AoVwUqj1URsFQIMTK4H.L.yCorl.C.FNvZlACAvLTbk0B0CPiYZwFcC0cCRNdWJSmcsKG+Sb4uSkZSkpxG4CW6WIUkeBsc9HeroJWkqJI+E4jTIe3ezGNoRUtJu4bt294seBLXHGRMrr0N31291264btm22ycKM0Nh55pZoROUqCFHlJ8yw07.Ei8KuufjRpZURk9Y3letLykK0JGLPPWWrapzoO80wGldpyjh7uu4ZqHHKnzQzooTo1QUpi35R8kLbZcqherjr7pBcEaI02UuyWrVGUkxpxpCgIxo4xjZfPmaKrm3lBX2NEWpzmsZWICUslFBFh5oRelUT6dPy8UuqBs+6HoKsqrH9iroZBCDs4UUk6hyXr0Tk2WRt6VVKX8Tv2eKmk+ooK+KxsgTWI61c.CWf7.dm2vM7H8o7N8NsmoWV2SuLtldALkNsqozyXgQHSIYgCD0HSkWhaiZUpsUi1j+GZ6tlMmp7PMMQEilhe4PQOXku4ZlOpkF.ec295ppCppH.ywttaFG7cgt1bfn2Gj9zIdAmMxEbJbsspjrHt3Sa8Cn23BEP7UDLDRk9Rb4leNkVK7wKUd+x2szbyswMp9i+B3+ctOYt4v+m9RqjBeQGBlzHIVSo8TDLFpAsc1MG1eEA3SZuJ9UE2TsuD7bB0u8RqhnRPMiPHX0pY3lHmB17.YZI1efpSC+jhobgQOCEi9hbM6nIMvv4I3p8Y4poXHp0S.PYtItn8M0op7tbev6ez8uoee9ir+crXvqsYsV7e5103asVipkp7YO4LyG2A+H7eevzS+Ae.eq8E46AryupArYSmeOQCd88U0.pXdgd3+cntjxd7FX2jzzM3w9M2zkUUzUkEmqirnf1rW9ivwJI+i+5qWekRqyWc8paTcyVM4S1qQlpWGmaB8GHKdUMQYfqUWdMwdhZHGR84lFj+.Su6Hnw2+fljtow+i3IhBmCVVlMM6LzgPq8Fkps4LvL206o1sc8MaVsUaZmILKbOFan1cnLxVY1YBruyPADjYphpgHOLzveF8r8tB2Qr8l0aUEFt1Up0bq0Kcq1WGHx+Q7.T1.30ie5xp.SIE3GyNSXuf2EirvthxNcqTqRsWWP2XSXZUuWOXZE42HQu8LIEuC6Wqx2pQoMatU8Fs3WqzlUVuZC9jf2cVPFZBJ5C.Ry0DT5RQtUU1SRAHB0DA3aKlmOBTkj4XYXk1pTxoIclcaVpUscpRfVsKCKtMqtNL4xZgMpTsA73J9ddAqNTt9Fa.fDecXAmN.Ss1M2pT4psmuR6pJcT6B6JAxQwFB2cEPT2PMAY2eyHdiJpx6dPIi9p5vKjy5E1ndksWuZ6cp0r1J0VuVqa0d0RUp1tUsMphcqf8bo41qj39VaiRWOQi4Z0ptdEOOMatkrd5Ja2pU8MCaXb0wlk1XKXdAXwFsZCSR7o4sd350a0pV01k1DlTspAim46OeFqdrZMxK2n1lWucqasUU2vyZkw2.ZDPRahOI+HyxamRMpUZk0qlP5qomFI52SVcWA41cnJ8UB3zHYLDT9F0yixqohXOXO.u38.l0J.Q.8M.NLtd8RcLjtiXMXgnMrOLN0PPyLJvd8Y9nn5GnzXGodRcRVuQMiRVOKoYH0A4jJop35Mn815kDvWB1WS4udcM0gCBsuzO.smaHLHjYQWPgW3KJH2BfVnZoqJIJ20SeDjkWSxP2aaJR8IS0xvSI7cBYBa2OUbdXt35AHCQOimCb.2NJulfdsF5A1SIKsIoqufWVJC6uqnV8daH0AGkLddX8gFCFZrppFLyB90cgsEkE6.B2pOPL3ItgnPm8M4hXOiL6lKRQxr1Co30M+i0.k1p1nc3DBjACleVufk.nNBCPa.5hxevE4m9YeDuuNA.h58JS6oUGyDP+5KbOqGmOyxK3+qgjFlJ1i6ybVjQzQP7djcyzrsv6j43.f2..sIWHVoM2oTxkfQ3yXoAPegaKtpF7CaiXlcwbYtB+BKjYzDk9ADVoi3r.dqq59e705OXHr94aHBR0A8nzsD2R4m11741O1Qe.YUgtkF1URkXUJrZT2RUU1Te.eeEg8vgFdv5vqA5ncGQsc40GHPTSy0HR5o8fMyOcqF0+sqVtU6UquNPTe+t.EcaMU09WUuOvmXtAJ6g5GMNCPewtRC6eXFAYAs8DsF.60lj89NXYNPFVgj+Vh.BFk0Zo96Js2P0g5UfgaeQgti9bcEU8AfcFC0ykolRm8aH0UbzGjlB6JInjkLBkJ8IMg0j99i9vrkfjtgX1EHSD0N2trFLLkOnOr+bLlSFB6sW1EwwpxZGpQZB.ksGhC8bvgmsOxp8EkGva.u9tBZiBUD9dssdOqA0+NTj64zSKozQFT7Y1Yvexis1GDSIpM2WniuG6iutlvf8AAhg73s.9anLQzVL9MDUFR9Jgz4lFZ.WYqgx+Db8Rq5.L5oIzW7tpZ2dNmwA5.LLaHHo3ZLH89tRcA6tz802xRZfk07eB+JCMLTUXmXNcBjcpwec4CFrezccewN2dW06ExSU6uqJ+Jg83JpfhE0A1hxBGvit4MxO0Z0ZVMxNTSoqTGzHZ90k1aeiH66FhfjH8feFHvbOMPho4.vup.p7xAA24FBf3fH+TMD2i.LqIKOj37PPhdR5+Gqntav8noLvTSKxAo4WNTPSLdfJpvpryZM3NcSg6HhT0gRnt5PkNTEf4cHAGZHA1THI5lHD8v19fQ0cgQca6myP6dcb6GLT1p8xCpna.68CajrdgRVu.6HVozM4AHgglpLOrPb6Bk9nmWDCYfqZY6SY5KSGWd2bnD.LwU32WsuH+.foDLogsppv3qExXtF4UXAzd5ALXQ87UoCOyZjtPzIquNC0MT6Kg5NZqoeHSGTgU95HnHpOI5vbfOCpjdjSslf1MR.7xjWcD8jnFEfwDjOPOZvA0RC1kqtDZJTrKulztYq3oyvjH0MQ+BWqz50ZRrrmOw5bJoHiFrzybeAvBT0XK4g.Pge1Ky+Smd5orzMF.7aqKtFvvBz2TUdH1cvppsDTDk0mEjLJBS2oZJZXPDU.cuhj9sQCklEUddpZJvdHAY.W27.PWi97n1n2+i7OEBnivDYpomxDWApVRLdodud3PX0LwOrVwdwRaWqGpIt6PI4tkABCwt3C0mkc19iAsFWGT8Ud1rykw0qFtpztVRaPooIKonVQl8yB1hHN6mQ7vr4li4bO31bKX9n31Od11HaZYZj3yRbmCcIw7TbKi4NF1QybWB80Xen0VB5Zh4gz8B9FOBQtMMN6io7KrIL.nCRNRfK5DRg4l1g9D6kMDVUgtFsfqGkgXZpiz3c7XczQKw4I9zmGzTsb0lMq2HwQa5IcHyQZfllB2rmHN4qWubo0MsvuYxYjOkSXBJuQk1kqiNBtUU6.XTZyRqeql0ZRcoaRmN7HZmekRMqUlGCARhmOSQ9Bjv.gaeI5wPcSGvZSVsCH5EaaSRSvbZCzSSfA6fs.aZ2Ng8fmwoy9BJf7F1gxr4fFsxzGQb8QRQAXJI.RTqTqboV0aLB3.zCfR5CPqDvY6.P4bLXW7p8.0s.U.5fAkeO53iKeBadhs.hXa3JeVOqkK+Qi.kCYXa0n10ud0FiPHbfOfTO9YYfg+n.iIioj3ozuqjQm84mkc1SdNh6mZpNBfHsHIE+PfsscildLVrsoFrytKQOe+O+5aW6J7T0M32ETd51.HZp6O8T2G+emJYPK2L5LCeXRiIgIgcsdDLriRolRt4kz4sbae2q3P6S0guKZNMzCyfYbEhR3UDMDjj0IsiFoJ1sO4EU36ZRK0STrKlAKyQwTLPlVp6smrolEV12fPIj5eGA4gfnY928c4ixkrviYFTyIEy3PktNkOyp.hFQMoNVD+l8oph9PMTsFAWLALzj1aOQMPg+8E.PEXsCLEP+W1EiNmYzsgEJYkZGF64jzcXKrgvfAhcm0g+wkojcH9mn0s5s4GNfp1.40MYW35aQBnuZ.rllxjihtYbeVSBcXs2Pi7oNe4O6irH2Y9vz4MOM94.tA1pTAwvYyeYv7KzCInlNpTpHSxAWKdWrHITWD3OLQbMsPzxrvv8QS4ZJbSQ.rdGv3NdLLGlTc2AeYxnhvTuio4FVx6yx9RwDqJzWcH5jTEyInNYrlJQAHG0rd1YL.i2m4JrKmeH+LViHZpimUQWUk2yvYsX3csP5384EQmi+Hb9Oylp.JCej4789TpN2yjoG04wXLMne86a94fuVSSwi20z+G1bNLow8SfEVFTP+Pz9AL2EumIZyQbz8QcyYU7FMEaZTzv8ml20yL4kSREg.dLZ4gVTu3rz8kWgh1s6Xpzmwal6wkrL2qC0TVWcTUAs9.C2WX4WYJS6eSkJ8oLmUPWMHo.2ELSANh2CWQ8doj5lJ86w0A+oYlGTGDGWCj20dCoNznKZxcNEYI4NO7RwN7uf4vS83EYvuHmIe5sj5baXZ9Ev.FvHscMRJGlJcZyYOz0AhZnOrf1pHdGoNhzr3aJtJh521PcPpzm0N4WRk94oyfm2JG+Pi7ISfWka.92s2nTyVUazdEPpzdZ.Yc2T2y8L3.2+3tRcM12tgG7GVbeQzsm1s7K+EE2cOqDm843xmawkmOyREVHeJIvlOuOHS9ByubNWOHGyS1UUCL.tozuqmTFk1J5BzgtRdxyUD2Q49Crz7YJrzhKrXJ7AjbvLkKnxyFFT4ULgJq1nzFUaSsxscoFsbCTtTQGfxCtQQu.ku9OfEn70OvEPYZtrKr3hKlKag..IEVL6xKOePfDym3dQ5ZjrWhoOmq03zgsFeSy0XyZjTLg3WZD8ChRYWp2x0Rs3uGyRM0ArK0T+VEsmKiB5KUQPRJLocM6CEQjZbWhMcsk838RL8oc0qWvvLSvoqwUkUEPOc0ByKYbo9VbFveZuRUUTodrgrlYWroJ5d+Lyh8g2y2h8C8OqiCz5i5coL.EL7+aw+0Joi2P.zf7daA58SFiTLbNVJ6xYxrTFeaSVZ9EWJW9kJPyE6S8po49oSyyOiMm9Zcm4C4mo28ZWe6Vascq1WuTsMMAt34DXlqf8lJP7C4yR90pffM06dSUsaSBUNzNIaEHOqo3dXfBWWrKhmgGkYtLjGr8fJhcDN.k74p0Jf.ofZeacwlvRninoUr5d+H2V7tzP9fyIyWYKAhhzleVqVQQdaHP.atFdyQkrrDwwN6z2O0crjcl9zhVISOWZSATIl95c7PeUYnfrK5KPVX1CKM1rG6owd+SnwBhF6SmFc3F4g7.AGO+m8HinKWjDcYNgn6DhN+DcOSXZKbIuXdScgVSTdvNRh2EjhFnBfm8qSGjVwEco.3YsTbd7Tu4bgMgmIvIrUXbhReU3GIetDwB6+r4Z2Q0yziv16Wyy1a64MydZl4smcYmmiDIOqWkcOleqKnOX47KWX9bKuXPalWHW9EVJeJVCIfWIS1EWHi4Y+5lgsqzhWE0d81a0bD1PBjvdg0fgTNv5+hzgPDk.x.m047tVNKuTlQhc7OvC9x0FCFLV9n1X3YMM5aLXP+aHnc6t.OI5lBGzO5c.ebVQKkxlco.v5EJrv7Yxk2D49mQQtHqHDXBnGz8z1rmZJJn0Ye1Vao1wcSqnJ2cUXthm8OjzfRFrpz8f9cSDf.MdUJ0.wmha2Xcmt0TT6NhZaOnqfgnmGTljdElv.Ry.MC9Y7Z8wrEw1.NGb0u2A6Ip3AK+RdcFAMkdH322f61Jp6ZK4SPGDasip7v9hQsm7W9UllBcNNZmSoKfYF+VXvRLrN4rIE+hIOmgz.bxzTzPmFCcxLgWkFB58vjNiYmNPNuvh4VtP.RSWNagk7Hl0dmdlkWZ94Wv2N8kVHe174WLep9tONw25g8EbA.VpXe0tltaoizt.sWeotcw7TPmjP9tcWh9vd8jf2kiiu6JoFpKtsRW0MDTD1STi5kpHjV87g55nWwx0Qt1Oxfm97etWqZGAz.AidVNbPY82yMBvXX+n7PAqAfIxgd1H.jWlBEVZg4K3CYCpakM2hdfSemvDRx6k6Xy9vlMqzDwBbwk9eHMwGWbo+6ROJbirfLmsqIt1g01aX1RPdGvpU+9uxYkN0Y+M+8+8+FrU2fkoN6O7RWho0bXyu8aw+arjD6z4+3u59jVEP4M3Y8.i5jN5nyxxRvew+t7qoBrZLw2Wfi.d3sfOoTGH7knqH4RiDl16M+dbf9d7pCLj5igVwJoahhNd53b.IE1ZElpCsu1XXIMJXgTtUjLMmeAj9WDur4hvxA7ziSVhcgp+UvC1o3X3Xv.cvXHdKbz8qJQAOe6MBG+4wAzWHT9XWlKgw+LBkBYbW2ukOv4M7y6KDblia8RnDFKlTgyWydeyLbkLCkrdvQadt.jc1UrmvPYZH1bip76p67fkiElOTdKt2Nd9vnjeaVnBYdYmgWraLqEId3WD.dfBe43fOPpjhSBlV0CqNtbYAc6.wKIfypce8vYkKKnaX9kXDP4z7cbWtLReljvV3cXVNkquS0Fj.0aYe.C3TpXTAZ4mlDx5jf.8Q5jY9ExlqP9HzRxOYu4q3cahSyggFBDU5hgapj.XuByhr1lsp1XUL9bTFK5gDHCFtviEviwoR6E.RINZsPhIVNlmDJZZL4cmPFx+.VFxllRFCOX5mYJNRugYFCufV9zZLueh2QBuFhVgig9k1LnuF2JhXpRKPVwVUIhANGsFL.7cQ240GSfVlLAZtTgxSVReCUzOaBZGPU42Oe9HTdJbb0qwhqZHZlgAghopXhodFNReOFfmFcAoWmN2YQ.WgdVGMbkMPlROo8TGszFe3.UIEC8fj15CQEJJMB70KFJ956yhuJiTUxIBgcNNZmehDi85lSd2nLycYGR7Px75a3njWmKhLSLV9cSyY08mHY3cI6ouuzZ7QI147ghclwmvngFp8wjwDOIJQEEeaTzyxY+NeqTnTB7MSB3oc9jqufqbMMTjSEa8ELUE9D4PGZTzTgot7OjALQSXa6PtXcrSiwZjIf1xAZBynoMqmHLE5Jd9jshqozSRAvyLq7G7otW4Wj0rVIejlaVbzbvjOP4nfgRjc7WNzcFO9M+bLMeIDKMC29oPM4JTCqb63uSmjzm7sXVtVYd6pXFgyBdufavq0BNojLdQF+pg9nAC.YjbhfQwygg5Jf.XXZ9DOaZe9jZUuEvz5TfiQaDqFZipU8wijXBQYP.2XAF47G0Q72ABYGMTuGnmohreWSnGI92V.HSSBCKWvog5vDdQ+iANAvFks6tPBlxURiiwR32yKgHW5+M+.m3cvktBSvGnxXmGWuKD.kAMVrAH8Ma1BYVbw4SEaFDaEI64WDd7hEREqxAQRNQEq1PPYOSO7ouu5ccJdqjV7IjN.eUkDUXwMe1kLBFsjdvchIMMR9dZ+5O4KPdLrTs8VAKRIWtLymuPPpDUHKFWOV8UxkEzfJ2B3XQYe+bblGNqRsJMZ99fQB253oqvLu7SzIsHTXaEGIK8BHB5BxR6ozmLENKmrXOVGk7vajDETSN1JTE95YlEAtBmuXWICAaeQ6iEjMzjkFMbc3mkkFcMothrxtYzmOman4lrJIcEefmq3.v8SfkOSlkxmMHQHKVXgLYywRfsv74yjK2xYyFpZArlnlzfM3m5zim+SkDIYuIyPSgzkwPsFSZYMAijUr5Kkb6cFEGQGtbrDA53YAcjhNcy8w5ZXLQeJo.Fuv3+q+7DZSR3KL2vm.2QFtRAjfIcpj.XlMJ.SaR+xxBft3CiPg9.CcgOXXr3iQKROQBpdNtrKu.HQGDnylzdtdfWfWpIDrKGCr6y2+vaLzSRvtWHoaHoAwjJa3vGN3CIyrQLDYiAuu3ip1o7mlKIQBKdHEiVB6C9R2fyYYUeqpOIrUhmDzG1KXWOgdF1q5UzWgHBiTb17lsduIGMqMBKsFhfRyQitD8Ic.Oeceu6Poy6SycEFphrKlcAvzgbYJDfhdqTzQ+pWhC8orlB+VRcLT2CrNTmkk4OYb116ClGg9aHsW1kKr.nX87Nf2yws1PMMgCR1N1Wz762Zi3RDoaEapT8fOs3j6DJlXagOBSDov0A9RV6PA31QQNHsi4j+E3L5SNPyXUn6.+KD+nuwgsUvYujqzq0apH0Rp+tZhQjFR9rsOSNfQ6xKknzMJTR02v0ZcjxznD.0hU5yNGVRaWYczdANLiFsc3YXTnGAj2k0GGNVUFRJv3wGu25giiZMwfzlTDD01rYK.U1NY4xCyB41AfsG0ExjN+aFiT.JD0d7jUpgmcH7t3nAPy1z5uGk2Vhht8Ky0P7p5jxb.uS4xk8DA84AjP3QAqCBw5cglMalkxlK6gKaKeKWr37TmnU.zD7cmKbdZ9Y+Mdosuecb3M0wwDLzlTPgClB+ABQIfweZ3GyV0ff5d7.FiSlbiQxsPA7nTr7hYc.ukrhbqt6RRh7AWkBfE8TbtwZCJSTq8C9sw5g5vEl38Q.dlwggTxusAqk1E9zBcn8fkTWHHR8fToHFnGCBYm.PH8r8f7k4RXgnNpJTQ3KXx8t.PLFzB9q+7GQK3TsFqErf7f8EbFju9Zgh+uXD0ok2xrNsXuyB9HdqPKgwsqlM2tx6qppK5hU2+8G7uJIb67aWwUJFyVp.YxM5IGxRlyY5lPW63LTM4z4KaQtqjw9iDuuQkLIA7JwEFHj7pbSSqT87YWPRgGqT87jBL+zjZNOe1EgVqrFssTjSfEW5SE7oH2utDutyzr0MqV5iaFhpDOTNRW87oS.UIh2gNIJ6oOJTk3T92eEvYC76SOafNfxVCUPHYTG.+yYmiOfVDFCUD8bj5d3epmiT2C+SKBzACXAQtN7bcLbH6eaN7HgumIYOdKQ7AcH2G.uGzBYlM23bV.CYCZn6U7QFDMIm+sVLtW3S7waYshinlGi.JjdgCDEJ7AUsygN.E1kz+POoi.aTmr8jN1NnG.ufkr7Y0u7wRDiIU1o4dGVyF+z.PI9widNbn2JPJ4CmFjNb0dMWbZpUNDVZe8vXxcqX3W4EHvqEhyLl.VGMA4j8LiVFkBK8FUQPXcMo8jv6PK3UXcA6Nw31gHvFg4Y0KvsYc9sp1X05M1nzlkqlxu9D9TzhI5m4vsEKtT1.y4lkVZwBKubPwXcgEB3zzZskwdy6JbVUAV51WDRhU1x9RczTGrOVGJGhE3ehFFc.zpeM6GqyxfaqUAX4V0a1dq8EzEWGzJfAs7v8byj5iKFJe.+fmb4yjc97KDXHnIOHLVMVfmE49XQwA9z2BTTY.NaAXxdBZcIWsE.PqKncii0N3XRVS73hJ9LzXmhIParHHAGQdNWHQ9Fci56P11jXuITaj11LB3xQ7fi6GW9ttCaAPeiWhTlx0vzyUjdiAjxkLPrNtZHF+V1aT7P6CguSbIcnMCL5hfhObRzqosRzqocoS6YWMzSptqCEfOnhtkgT1vjXOR4iBN+w5gj++q1+1eiS7iNGhkgEMyYeOd7TfFkdIGiRonJ2kMzMEuaT7076xmcBvzyIniyRrxTigPuyaYaM..PipsI1xZ8.AdEw65VHCHegTuf8JrYtQv7xKyMcysaTku4FEVb5Re704KmOa9oK0hOelBYldSwgf3JE9sWZQKSKOShUl9ssUl1TTUotewPc7JRgvtmkeXqfx7ro4r5dn5TewhVpl9LbXYC2vygIuaWrha6BjsqHrojJzVs+iGEsif1fwQJAoYsG8nyGrEgGV9piLREuibvD2fAoVTLHj5yxs1V7qJIik7sioXU6nAdb.44IYECkLKTOBFtd9usKUVFwrY7g23IurYze7OmDIxnKBhIXNLtSRBe63mBdwcnDFMsFsGI2.rmKL.122E.K4YtXBBUcRfXgV9yBLoDYSmLadPhbkjkst15vXmA7djzstPLva2uth12IF.2oNB.GXdIC79PfdQh.Mq1q2b7VAfCeHHAmtWG4jArwBp7FGd8HgEdFRBOF2QAIJzieXtuXJOZzjglEdgm3d17TXQNiQROFMnKWLNAexB59zhdW.gmJiIFTcDj6wQCwleT8w1gAhwqcbBh8BIwYjNYq2iXtcS1LBM1RgCSgeOfinZxxHT2JnLpIC5GMVICZDXqvra6UcxWgvx8y2xs6BbeecNZY+Y3eovS4y3xNyG9IiDPvJCRuepnSJzfRiT+DRAVeIytXt4WJWgrExFZwmMGS9glnMhWjaqRaVccyaojnS6SPP1ikhKWb4ZZpeRwGCo846YWGMIftjj4m7toBmwYxEmhuotkexw.QbiZkvLAYC0axlvmvjdnqL9jpaFdeqttnflRXG4QeVnM+xKksP94S1oR2xyklK1IZskKw.2IP16EawhKtrD0m0XdBdUnJn79tgeNgvDuVWEKIumpljw98Y8Sg27HK0g3PmD44Ha7CbGiqE98RBlMdJoDow26DL.kb2pecM0gC7Ec7TOQAK+7ICrzSxHGdThdCurR2VWzJzpIJ+qNOmU24anp1O17vIU9j38aX62BKuXgrKytW0pYerzxs7x4WHeN+xZRF0hl8Oi1yW1rlmkaqgF1YJgoA2hRZ7pVfCRYheLCqpejxlh2kvwHJjhck57k3JqpbGy6Gbx0rt32ZPL+Ptsjwq0Z2nFCUxkboCH4vfadEe3l4qD4VkeK6yPRCQA4qZfZaOeku0fPxwY4L8.B+t.ulCLo6DdOSIEwN6qJ0IQoM+2gyp67k2W.uwC+VDFp58HYdseDDtyAqhYlPlNTHSjXnXcKHE+zb3t1xqBxADrZ.cznvwgKumFIGOLht9HQ5leIOKP664xvTO+3HLM..TXE6Y+sR0ee4Lf04KDh96tKOTmKIm1irl9zf8tCkdcluo5VZpXBySrLiE.WzSV66K0ftS.EgLKI1aVmuT4V01oJ+VMpuZMypZdfbWR3E0YBpwS9vtIhfJzZURnm7g2y7jOvLrlfR54eHJR0JOLAPxwaw3b3GdOeG9gJzB.HQAJxjz2Qef+O3u8O26QeHTfSn1y7AAOMMANlyAyBeEijreRLY5Xhf.LNw9tAbBQNroG5H3npQm63KD+0T.y5Oph4TQ0fxPfyygkpH9xk1p01MpVwWtjsrur8LatExt7REVZL2iEP8aMrbCM7zIkw8K2hQcEaEMFmDZatfWElZRP1xXRA6jca+isxtsYcmca9uGVdU1ra6C3p1efr5A7kpgwjTp+.MPkAZ5UPODzl2h6530f73jnaIBo7XMk2Z7+5uwUJu8h15rYBkSdtu87SfKN6vzld4htNvOSB1Q.Qq+8ZloJ1E3ltNfLwynvzDmO32G+uaPGoKqj9glDaXlsEAz54hu5fvrbVWR41r2VQAZt9GWLAqUKaGwQkeK4g6A5mGX1SkfrNNQv+PMGIBfzKGZ5YMi48Sl2uHdpBE8mxcfrmChrzrk3E.lkVqKdGeEd8.LhayhSfKfLafTHYsUDVe8AdNVT2gb2GYyNCXiJIH6Jwxly6wVIE6MdVPIvUXozV1GZkRamgq6JoXuczFwTz67wUd.nHs4qbh4IgXdRxNKLutW1N.7bCUEI+Jx3M4P7cw5dyPudzOO27U3MGSfGV3mCoPPnStKKtP2kcnymzmM1qdNFfaMEed46WZDYvt5FjdzIs79kH+JD3qLpXqnpM2NFv8ZdLfad7rCK6bkuwk95VZ18lve3XR0OvmIUy2cW3MI1QYWTZewTtKJsuXPZNDKZw24QOfKRh.034U8nwCLZUU5nhWxwgpiybGk4uen99KFznecZX3d9EAse2IZFT067b1w.t.hlvBToaXG1bi2FOS00dItoAQKfPlt7qHoHLTSPNgWxoutakHfktknrOIxH8Uy9Ry4StJrAejAowp4vZEO5tQSsIDbc7oaAHmO4pVG1IKcDb7WaRQOR5T8H2R.8ofgUydzj3a92G9kiZD7UGcb3sh7XWTyeRIZgTu0XgTONfCu0Sa3veLqd76VLv8g+3Iw9vO4w79vWh6VpC42SzLZIcEENFfytvHntXE0AjBFeTpKtYxUW74IWrrlC5StJK55p6ooT+gxXFvShgLcgwK1qGJfTPm5iIL05uiH+.AcJcfLVQTTF2Pi40t1RaVs7Z0qUNTCkd3tQp44WEflmONLT5HSG2DY14a5YAtY0alX6NGaX03jSQwZ2XvFYFj4n9MO1mEz1XovBK14ByB.dOV.ffSmvhv.OGCCi7AxiC64Xiw65yFCLsOZqop1+p8EADReeUnqjkZYLKxfBR8SHl.FGvzOUAavqh57R+ldrfxFnQsnPUKB6nF4IJS1H+4wd1pOTWAzIWfhkO4MOVzj0umSL8RAYfEIaWPSqF3NAYrRZIcP0hQ4fSeItoa1GrsljGdSuAgxm92qKnsmHM87L8N+oSr+a8nxGhPfkcWQ7BvfQs8KFS0iXzPsA3J7Z1GVWXJbUxbv6Ugyqx06dlCe45atS81V4LGtgfpvE1so4rVBI2YsGIJR99bk3IyC9cw61Fp5FjKgtcEHTCRj5uTXGed29At3+z3JDW.ERHJVBREFKO6+JrTF2z+kXqh26jswjwDG2MSxcdasGyNx+8IF2IiQcvxtNSrohAUoQ7+p04XrO7ekPw1+.VrMd.6KOjEiW7KNjrArp3NqngHWEXycpXsDA9LiAefmgaMIXAj5wKQyUss1.1rCKqq1SS7KGJpz4.SRFgcgk0.DoOWH7AbS7j2yA5+O5utHkf3Y4V0ZXSMBTW+Q+kEcwBYse2wqBM3izAqyb9qCgdu.Gq4bWiR6chHCFUpM+HlGAdRXbHVc.C1TNuiKJGBuFP9NkZYWzislYBQvTLAyK4qulCuD99olLREpn4SUgtSHoBvPy5k6sO1IU3R9kJzU6fmPjGDdTHeWutUJAEqiLtv5Ea9jWw5Hvyk1jndc75dH2injcvbDFmXmbwi0UsiWHYoUvDrvcLhvsIxMAU7W3XAe2E87wcISD.zIYkgiw4PoECJ4IgacrXga4NBRZkmbfauPxXhM4pqDIey3iqRKwj5xFiQh5nVcIt1XUcIhFsElitlwyQjv+U9klQH2xX6HoOTPVRWTazpyDI3CFVAmX1hVUHh6LFWkXiH.K1ZaQyhI5PfkcwbKlYgEyCpVF18NF9xvl0EJTnPx3r88L20XdM02HlBNwWOL96YrcNdcOiMt0YhvO.Auu0dRaf1XbIik3RMwCtQwv0gx2hKL7YrkahvtVJdGlpMg0lUpyHGgaYrr4xjG9OiVnOcVFSzJLQPWvNgB4FIps3SHzwpdS3sBSvkDP36xBBcXyFx8v0sh7xy3NI7x0MLXSDEMgPyn6HQ+ILlYInBL3JrmAPcdQSP6pxpBX562BOWETaMLvCxR..XV+e5AxxV9b9b+GasaTbR.RVb4L4KL+xtUoadaWTjI6xK4ODFvCJLetkWL5ZLn8Pr3BY..FLETLZQfUmmqzvtRpkTDjO.fCovyTUpz2h6mNMO+La43hqY9P9Y5cOmEi08m9VMm4JXWqozU7dPmxR90pp3I24lpZ2lDbLn8dBx5hSe+jwLw5paespkp37spSbepdXWJcWhoTqLwH1hKhEi31pyE902P3kZoDQL4QC0DbB6sGrMUM1GfnQWJ4qX6JWytGenbB3nejbTaxq2RwcqK3xIdlS843agkUSJbfuqJHpTw7IgKG7Pms5WH9BgEiBJMEUPOCdGIiChQ6jCAf1JdrVeLwjfXOBvNWkqlRGMQ7JZfbnYbV6Vdb0ge8QIZJ1qiaSPZcXJoE1k.yCdDwM5VOYvM57gYR3aYZRnCungXoonduMj5nmHMxu.ro10IqROITu.QzdJj6SyzmkSVrmQ.1TdI+PlBYWHe17YB+bMDJkQDW6zd8QHwpoElGTibDNjVNfyqvBNK0sKIzBBxXUmCktuJwgTIgSOAxRuyTJo.bi91.jMzM+um2IxF0pTiXmExZNXd.e98iR87TaFociIqjiczcM4xx1YBvC3Eh+5GxgKf.JHBuM6GU4dIEOYckirYIrZcDf3DP7zhKEzUeiEspeIZ4xLe9Bt8AxyxcUPp3ByiA4xVNWUtUkEz2Gz43t6Kh0NIARxhwqpwSuH8HYLjjgYwHyoTj44ddJtKvHXWreIgIqdK719PGUD0z.7QWDgTKgZIBPe.vVI0gBCczhRR.LzUAIiAqgWYJAh2Bx4JIKZrW1GfeDu8Ddv5O4EP1vbiyjHlr7rLolf2jBGRORcrIxrOebULVGf2D7VUXjgdGui2HevRCmHkj8QATcbK5YILnY9Y7MpwMKyXE2rXQagE5r2jUO6vpP6ul63lUenwfgFl9fOYWZ8w8gbcZ8T75yReghBPiKmK+x1kZ8EFiRsNSXw+Le.4FiAPNBU3sbyd1joj920beQ8sas01shIzX7+rinPic3KW6Qqn9KaE37pkaUq9lsojUol7wMytz3XBOGinlMNhQCFKNAKL6Dn32kaksa0B.ezUE8i4rw86G5F2jD7rkxNe1B4KrbxHamwDQYsfOxCcVvP3IjeiNBByiuxzdrWPmlqLzem8kzEaQJuXwcAcdOekvrKF1YILAnrXqdYiccQ6wZAL6m+q9.OEvLKPLOEFOxWdmwtcnT2tUNPQnuTmFBtBRgKj3rICIZCumiaCAiN6SOwuXJ8paAfss0ldiWh09qwoLzk.piiQ3vuGEGhG+aJblm.nSNlL1CMfEbPPG.AWWPRIx6IgKYejzou.O9FiGPNtiA.qdrglj4LbY+Igbt1BTFfMc2av0TzflUF8oqLUpfk8fE3b9xxal7G2S1kuj6izAlg3gVtARV7PRjUNuICDGOVCA66SukeyKULtK09fN0Gi4lnCsDqkyrzR.tyq2jdVtbExtPgkxM+xwj8AAnG02mQOJf8wfAhrNgOyueLt1LA.DKmuY9EF8H4YSz93JRd4.UimeoExke9Xbi1ERL3dcP9jgub7vK3txgBba9ElrANMNe6LgBbpMF+PG3zyOJ7MZFXYH8oZ9F19ckAF5tHNbZ+vyPSmo2glNSlqyJ.FlZmBA9tgTmrwbC53IQfdQTmHMo6sknvsICfO838s8mkw.I2gN0amNrjGxbhd8R01rcSPIWYQTv9Hj+Pjm0TbOzgxqK1EwevixLWFxC1d.H3T3.7ZvyUqUTuqRPsustXSxw1BKam.4ht2OxsEu6pBXcO.mSluxVBcQMBM+rVs1be06tg.At4Z3MGUxxRDG6OEZkmOC7e+rouepwgtNtcQAmzXKsXP9+KLV4E.R04ylILQbGVJxbmPQdbihL6S2TjusGJRxLzJ0E2PUQ8D5wS3PdTPOFUN9YN69VPncC1MiSh.69FdwzGsg0M4dK8QRvaOT2y1LaQNhCoaTPti2Az8MBxHhipv4FBX5Izf4xxnK9P4N3K8VPwFmP4FCBKr.49CLiuZ8sINlIjn3FUvfRTXbi7y3pPzo5MkAYigKJqJetExYGC2bG5X3l5lIgBMFn6HGA2mKr8curUxgUeipT3DqPwu4ZQb2aL3Ojc07+62u3nk9MrGIGeg605AKC6WBxQYAdDI87.OV4+rgtQ5Er1H0Ub2gtKj4K8KBxc4OCne5dRcXO55aEvsQR.kFMVg4LjdKu3xKlMa9kVzuT9PPYtQ2OSXn6Ww86Z4JY1HJ+vCbWzY7t715eB6xq3mWLoSQOEM+XqPEz4HAiDrSu8V5i9nG5TKUGIBPuKv+jG3C+0sXfYX.agmHxSDlq2yGzJTjR5mKQZ59lVzsTvMoXJZcvSXvsy5VC2e6hwkhzPKgwHG.ytbH5NRh2kvrtCv.TSUVmumpFzfjN+.RwalTqtoYRanL6BAg6aqhW0K7Kv0WrkrE3tPt7KrTN+mZ7bEVN2xKjMn65hnpMzjIbSvjLQJ7gAZuk9QBzdNq5kII.pT77QI3NY.EuDgzx1YSvZa+9b9W14HArj2csBkjnv5zOO+ApC4GNPVU.uCELTozo.1u6DF37bweD.ICKtYor49DFXyexO6HA1LKGgJ0MEx6oyCTHFhXo4Vfe.40Gc3A0y5aH0UZcQAMkPjskniRykMUYy0WpFvMggeVTVaxpbR.hh2ztrVLqKM49d90jCue3BPate6hgxtITlJgyGxqZbdtBLGUDwgBD6c2JyopoST28ZQ.hOC2e4+hmdgwWHLX76EFL1kXBuP3L5iID9zbZOcAfck3FnQrzL2.fY8D0vq8Nf0E91ykLh8YCCQrupC2WuXhe0OKpKyA.0vZ41p1Xh7O8Rp+rgAgee+P3VRFxhQxO4gtuqme3mxRs+iCv5I+vsYC+9o7BVpAX94GchPeGCJPw8kyrTxfIWNLXhGg9LRwN2Ci.j7fcN7fDSEFMEhdbAjDwNwK7yhhJ4gMNrfjyygebdqu9iXHxrgBQBUHwmqU7HkF4hbMA8HQ.ROo8FpQJdQGMPkoB+vDXVivby8v81jscyc9VI1qCdAUexuOKn5WpD786QZ+2uGAnZ+EsTsGX1eafK+W.yc2El.OU1aohVGCV5hL9pKPof7dcPvoT98Ub3f3UqWuUrkxrO+mORU1.e0Co+v.bib.GXzEV1600hkTsrYKjYwEmGTjbTJlSlqrVTMILC8L8RfmIiI+hnhiP.Efx7giI7BNcuFOGWgkVdob4i5fxS903c9wYiUSxbv16EErprfxcDbXGe1+geC8eGXk8T12+j+coce+SdwfxZ+DhUN1CwdqnVGwjSCiCgURwPOl.bdt9NSzIt4pLKHMAE8ApZFVKM8x6K1416pdOaf4Y+ic.lLDdq54hOcVaW6N5Qb3nvatAyTvorllNQov7LVhUrIAv3gYAshjjyGursCfjiNellqknPGRwkhI5m4xmI6RAUGJFMLosEchvWRVVm3KNgcUGZve28EL3wutkOioGzerC8UGpKdUT.NujwU3ET5xaPda5kCh9PYCLSawaIjCvrOh7RcUmK7P6G0cSSbWfQKg05f7KlOYhXecuvm0jzAc5NnkvtNmiFOT0ix1wKXiYO6CXN0Mz8AiLw3o8GL0.HFeEFhQLIkYOQIsiLr74CfDrmjbecC3SQusz.shYuQxVw7qpphoSN9UI2IYgVcYCFl6ycj9IFz6HHKRytJyY3C+0+5+mWK9K3qjCyZH5Cl806djCyvu5wMXV3tI+U8Ay7GTEvvlCKP6xwBzPegOIfZ1r+tLGYPobvzOPGX9PN4gPKcE6IfLzHdietjCnObxcMm49k6Z67qnJ0o2H.U6e5SF76FnL30UA7gI3ajjCGPzaxaW8dLGvCuX3.QrgJRyl.sK45n0a7g1mNT76NrWOTTrBP1Jz05LtTozM0miuTGLkZ4QdyD4zHCG9g5jK+bnST.HdgroINgDOORF5ZUyihzPWly1YBsKMLMli0J3MCwr5DVj.rErXt1VCX4vRG54JOYYamTOH9scjk3xvJLSlkY20WJ.uS3+J+ov7ymKa.ooyx4yjeg7KLeRjsD5FZu3yDwB7Jde0AZp6AeI8ZJck5H.z2gTM4d3ddkyD.COW03p7EJjsvBYxr.ygQBKHVKMegkXSNob3kTa9BKWXoQzdLeNLJ7pFYvvrv7vUnvu2ON3WPdWIlz.tUnbBCI6cR1gEyobf6CXLRTAiRNb56no4ZiUx.vyF+TSKg9X3roXOL9SRvaTRbGApDePWKgQ9gtVOIjj++4SXwizrTrDUtj8q94iHAakjbkDGNCfwr1QdghSls4AHW4sXjqXBznJ8jnJC6yxUdHnw.VbJRkPUeRHcvnl59VpMk.IKIkTI95LcDYxHcr2xodRZQ8wk9uHsqJiRBQt1dB6esOO.DF0WvBqlPBkXKXGu.G4fbcOC9MDUFlZf5fgCv+pDVrZMO6JVsUibMLep+Smg6ik5ba9JZC6+ge36+9fBsvP89u+ztZsc61t+YME9Mj53tk5CMHM0TAfi9GJ2Miik6e2Rc.9p7WkuIXo3sE0C4oWeeUcCuObEUfVoeDusmNXN.sfFx5Y1Y1BNwL+yMDjTH+cNecLmSGy4piy6qiy6zw4c0w795XdmNl2UGK3qiEb5XAyNdcUPceefaWshufqeRdoFRcE4KSJjmddMOsiunmFHu5ZRWcMACOukUS3KX82V3Bqeil2yWdeoN.5Y.VbQC5yy7DBch2lHSgxZNMw+1dwj9dFNH9ZLfgIWDCStfFlbANLyGwvLePCiEkA.aTDbCT.9ZjgvS6j22SKjWd0OwZ7VW8tdlALOAeellXF.5svdHig0C8NLVsxLR30sbHiC8QdGEZaTXAsklFvK5Ed54ADfgmVv21i32yjjqpqW2Jk.nL5qA1ZCaUf2wmh0Ozys.q0E+ryKjxUIA+Y3H2GzoBHr+9yNfqDuRO+VzjJv3.YRgyog3dCkEzhHOABVvWnwRxaFL4VF6KEWfe8+onwGWUajJ4EApoxXHeazNyctkZeFtqlMBCMFUXcBOUa1n.WEIMWoYtflgTG7VSFymZmbM2cAx1wPTDbTWoABEIEtKSMu7JwOMGWIY4jcZtdCuaNJgSF5bgslbJ5F2dA65ZkKfxSxaORzFh2w6f6vXHj8CO3FQseHfLKJ+DPeuz+sbe0WYq41W8UtzWZ5u5qH5+.MR+qb1+071+Ud3uHZf.+1VwBxScos.42Tg+j+zibbRKLBkg1Xju5qOzofawejFrEgPerKABe0WElOvKd3O.oOp4IbU27DjrorFSNBQb.Ec16+ZL68GLXy3b2juq9gtAX8Ncx8B3sAeeQMYA7DiDyMc4yyU5NhJRZ7ahuaBsUKTGjFtrtXKNwVnUMUh22iEfrXw3.HOnbQq7.75ZBGzUUgbaiVUYOIEw..Ky+HBrD.y5T1kwCPVoUkBwjIn8SpUIU5uCv.V.na6KxSerdJ5wuGshO8oosk5T+yeVtO38O592zuO+Q1+NlL301rVK9OsQK9Vq0.Pxe1SNy7wavOB+2GL8zePx+G+p0VuZS9Q3MvgGL4RnKeG0thyMsjRG4gcEmcFD6suFFduqxWQjb4ivi29H5y8E5yb4OZ5dlkeZdUEr45JydY9e5zSM8IacF2Aey5spxWeS9xkVe8UJU9iS5NnS15D1VmolJ1MO.zdqVa2n1lWG3ZUt9F3ePPDUJ0pDeradlRpG+rWWVEztSeN78puYy1lRcjT1ibs5HhaLf4B7wp0i+th76K.hGeOCdMLY2fsUfLO99B2Sp+v97JjaeMLj5zBfL7XEbW2U3GfipX24fQJnOJ7h06UVXfwPMx01jN++Hd19.eD5iLmQ3TpLLKvC8IuLlFC72QPSBk1BaqI5zsunv.LwTzIGWTblJBSdPUOhVcHC.bBME7Z7cnebxcTD+OxTUg45PF+M.3gvdhqoJCJ3NKv9.dGqI.80HeMbox2UvPfLntGv4zEIUArY8zHkyCc3X6M9+RuK6l07qO2ddZ8xA+d6HBPBIiCb+V1sEx6XVJsb+JVMExafk5KcCg9Cb+NNMZ9V.3YVS3H73lBXAISeUUsaLDr+VTaE.zpO6.yZN7k8BVUGbfoV41nJ9dZfIRjhtsWjM8LPa9l6QnZ.K7A893mEOHvC6C85.2jDWlffXoubuH0+zPoL+Lf5vcWcOsIERUhIDD5A6cCjMA1uUfeceeme3ODG46OM9+kDon77fNy0VsFv.lxCnQ0arc0lshWfJL9jMkAg+4+Q+H9xv7qUaSwn3by7oWlGkYhqcG5R.3Psoxr6x38ykhyiCiZ9J7gSvZ8DuaKb9S1NY+5XWr9A1o6O0zSeeVQ+85M6kmFk8e+o4c8LyyRkLN4B3wHwtVTu3rTr+U.xT4gh1cDTxuJXRfpVSL+3P+FshZ2CvSukomE1wIOCylpIXRA0xgNzRInqNppTSQx.OXoVmJ88kj6ZayftS8GDOqQ0H0NPRH7IsA8CLt0PBmBoqHdGoNhTiOv5Gt9sMTGDjkIWfiT5dvHfCz.RJDCSt.GVkAMe.d1cbaVBVylv5Irm6VlzmxKL3zgCCx3BFDvJLgSwWjaKIiN6G7b7TALGAH0Qwb7zsLMEtZudhcLblfmga0OwCbah84SeNWe+ui02GnBtip7PBn.+9uJWu60t0Fsgs56Tu8FRcvi7KR76APUQ6.Rsz2UUk+lhFdaJUp0gYrRGO.yZ8GLTVWbcQk8ba292bMy4VME7FnwU6aqKhQqdOM7FqfpIu6waKfKpnrfmuwZRkcMF+Q+0Eq.BbviBfq9r5psLoxsi3vpRxhTC+eGe4QaoO957kymMOXDQ1Bc5O2cEtCsp5SCZNoh5i+4YRIqpN.PUZFVOCanpRWqmm9zIFclMZpoFpCwyH.sVhBCOvBzaY1D+jmB27S+cFqYTSQktjefG+IyGl051Y.eXVqGlJITLuMRwzbqRkqZRzro.H5RPtT+ckvS2d6sZdbj1Aesi.ZmSwEHgQpXHLR8THgwavRXT27RQoIVoYGYZha8viCzD+W9W9WcMuzDe8eve6e90hjl3M8wOogpZ+l8EjkmSPpW.DLM9OjNRBF74O8Qv7p93jHd2DPqjJUR3e7MW6QO+iT4GY9G7ARqPyBfPHV1+24TQRrfO+IVhkyQAUOGmSYrlPq784BsLW6Q8IV5hJrXraxl3wqHHShmpatLJ2ATQdKUYvPSFkCmTv0zmIwZvhKI9i0ZY+c3Hf4i6SRBp+38j7BbaI73BY+Hdm9YofArDRnzELBxV2R666ylU2rRa7osTctHZ7Hafc2t4GGLsmjnrNO.GEREi2CnahsYNch2LiSju8heeKhD+Zar05UGYr6q7vQA6lp3IX2GAxoctBqP.vq6RH8501nF4LKRtv5XMJD0tR2RLbw4m++w0LuLZMgMW924+10ZHJi2MUtQzkLvTQwcKerhn3Qh.5GS.zWii5eXGxKUECf.yDB+bb8U6195qWekRqGgdO+UWK.sZ1QUpiHAc4z5fherjr7pBcwa5TQ2Jxh0XNOEXDF.6YRFfcULzIcCyQkdzBxzGYWjCKCm1s6V1H9.dm23HwsYIUR8KYhn3sel9ivs6d3IYR5LMmkKuISvuqKRk16Tc85kq05VwOEWQZ.p2K9bvdnVzTXgU0Xwtd0wlbuStA8ZnbbbjZ1idm8d5mpc16iZtUuNcI9c3ZZ.lI2Gu6dHQ4ixk5E3zo+p8FfoZQvm5al77o.qzwJjr2z75gEWgb1u815upH4SUpOXuumuk4Zog3.QACuj0mqXiFWWSc3.125atFg3ijd8LN.nthHfS8z2xZp558fkCYr7TQA1Zn1dd2e0.KPL5daCvutwrHxBu2k.5HoNVDAN8l7UxXtY9Tbzemk424X987L+NOyuKv76EX98hN+lBP2PX.kwTGRdk1tClQpz+aNegG6rIiaALljTF1UOWQZO6uGskXDBc1mXEB8XLBbdDcOk0bj5UlpfPBYUnEbN9xD4PMD+xgRZhcsej6YJdipMXeUEoNdI6Ax38HWfntbpWPKJ+pE5S2wKUbcPIJAMu6lGI3wDxJgWgiNcw68bwG+divT4guuo5LDNhDOKZO0Iy5uGAKZofwNpxC6yFomfmzNJQfwa0R4AXeF1HI1zHCBPKWE5EtF5RTGEW9vfzg4HQwhySgCOCWo0pzrgoGiD5pqgQGE8pqnhWySmPTskGpcGQFsoDNvWq9IwosrNdMz6wiz.uN2j8jgytg+Y+6J1bntAiaS7saIewpcTO51pvkvsJOu6sJGC8V2KXM+nXgieSvmiif9OtB+NOmIw3wV.3KvYt23wIHL.VSeWaVSaH0ohD8NR43C2o7EGKtSOT6DtSmvc5DtSOQwc5DOxDOajorbWxVp3s2HxUdUIYK2lSRblUqsN5tbKMrWgbHwTf2OL2m7ve8u9sJtpFXWkqDe3guQyeQwa33E8+2Wi08E2.izhWPtoK+NrniIT.ueYN6E0iGqiRfuUeUhIJN3HGzvHXOjaAvI1opVSCulO8XvUqO9xJgfvOIy7UGDFN6mTlu9Nb4xOm2+cm5v+o2OD+ykO3lZewv5GCrvMJ74qxYxDfGIkOdmiDu.2MNFP3cFKFC.hEU+1fL2tHCc1MRDQ1QB5NrLo5MMy3aRVT4TUEBLuucItgOUpBEOIapNIapNIapNNFPtPSxVdOGviX1u+zct56udoCn481iuxZ7YWD3JPpPJgjzs76xEYR2hO+I1bOgyJYdHN1o5WRHbdMWIyS0azFuy05q6OSdfoF0TFcq4.fCpZUjIACpdZKSj+AtfKMMEh1SRQxPrRiHSNwSDddhvySDddbT3YzVaPSl.dJm+iidQkjsE7Xxw7zFNpi0PAqGy+lZy8osKiwoOkLaPFzG1qGNkNEWPFDcdRV55MsJeSO4cdips1twlsCNqjiOCl9lqETFL8MWK3LX5at1IYZ4S2Gy7mx8y8oSfNS7d1eQTZxY2EqFkt8w8+m+iEOwoCGw9r5sH9rxF6rizPKLSh8R5ib+UdhZdmnl23Zl6zbkTDjOP2T1+q3g2j0cgJCUePoO7CKtkl3cjDuqWONbghO0Yx6K68X4IIi04gnzJ5VO7Dl1mXr6IbAO1vEbr9F3aF52v5gQwHIHSsdcWGAzSLz5DCsNwPqIogVugqcWQal0IUJiGwlY8lDyrLwMmXj0IpW7sIirdYW7kNwDq.XbeQ2UFiSLv5DCrNgC3S+FXcTc96eU6yeuUQl1jm62xOJ9ey07cT7ADx2hOJ9Xpiex4t+Iqyce5Ddt6uHmnxcPF.39eKtCGkm59KV7jSc+I93XhezN7op72CUU1RvFwIGaLz3DskOQa4SzV9jbu6Ql67nmnLfET0VlRWSzj7wPYQ6jDDLpDD7QwrruPGM01cn2OLjqlCRKvrTgbvDlhaC727YSQtyXv6T3LykIUePi21c5XdUJmJ32I2X7NyOFuS9w3cJLFuyBiw6r3X7NKE46fFaTZngJ8BnBE36bs.kJ8y59GboeKu6EeVNbikVOrP1S9VlklVyXlRO.INDijCPhy9uUGJK6qOXiL8q4sEuKqJ5ZvRBa6mdw+rq+2769KPMz0j1ETNJU5rlW4pzxse8F0tdsMKsdayKOoMUg4eOIYQ5M+F4RX08ocMUDq9YdBX0+dbR8gkI6p2bQWi7rQYM+1OArl+.y6q1fWyUD6ILT1n8pZ3ktKdSZ6YsuwVUo7QS65n7j5+OzKcMXJ
      
      posted in Scripting
      C
      clevername27

    Latest posts made by clevername27

    • RE: Checking the HISE Source with AI?

      @David-Healey Great. I'll teach to cross-check with that repo when accessing Rhapsody.

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @David-Healey Thank you for the information, David. Rhapsody isn't the primary source for the model; the current Develop branch is, as well as earlier versions of the source (to track changes). Is your version of the source publicly available?

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @dannytaurus One thing I'd suggest is being clear with the AI that HiseScript is not JavaScript—in order for the LLM to be useful, it needs to understand every aspect of HISE. Otherwise, it's just vibe coding, which (personally) I think is useless. Either it works or it doesn't.

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @Christoph-Hart It's too much to explain in a forum posting, but I'm happy to share all the information with you in some other format.

      Yes, some of the files are JSON-formatted data. Others are MD-formatted. I like the MD stuff because it's human-readable. However, the JSON stuff is more efficient for the LLM, so it's a mix. The MD stuff is usually stuff I work together with the LLM on.

      I really am astonished at how well it works.

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @dannytaurus

      @Oli-Ullmann said in Checking the HISE Source with AI?:

      You created an AI model that generates the complete code for a complex plug-in, and since then you haven't had to write a single line yourself? Does that mean you didn't have to change anything in the code generated by the model? Am I understanding that correctly?

      I'm using the word "model" in a very general sense. It's not an LLM model, per se. It's a set of data files that enables the AI to understand HISE, and contextualise it within the larger body of available knowledge of JUCE, audio development, etc.

      I don't want to programme plugins. I want to develop them. The model helps me design them better, and writes all the source code. It learned some its patterns from @David-Healey, and produces beautiful, clear, and well-architected output.

      But it's not magic, and many things in plugin development (as we all know) are only revealed through the process of development. You still need a fundamental knowledge of HISE, C++, audio development, and software engineering. Otherwise, you have nothing to talk about with it. For example, I asked it to refactor one of my plugins to use Broadcasters—it was helpful for me to tell it how, where and why I wanted this done. At another point, it looked at David's use of namespaces, and suggest I use that architecture.

      Obviously, the model needs persistence between Agent sessions. And it needs to do this in a way that minimises token usage. Otherwise, by the time it loads everything up, you don't have enough tokens to actually do your work. And even then, the model is almost infinitely larger than can fit in the available token space (and with respect to other limitations). So, my model includes strategies to inform decision-making on whether it can act with what it knows, or whether it needs to access the model for additional information, and how to do that without forgetting what it needed with to begin with.

      Needless, to say, you need to max out everything in Cursor that increases the Token capacity. And you want to use chat-GPT because it excels at this type of learning.

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @dannytaurus I can say with a great deal of certainty that I already created it, and I haven't written a single line of code, since. I don't mean to be snarky; it's just the certitude I'm responding to. I wish you the very best in your efforts, and am happy to help you in any way I can.

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @Christoph-Hart I appreciate that, and thank you for your detailed response. But I already built the model, and it has been working perfectly. It finished the plugins I was unable to finish going back a year (because the functionality I needed was undocumented), and it has since written two other highly-complex plugins. You have to create a model (and I use the term loosely) for HISE, first; out of the box, the existing coding models are of little value for HISE development.

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @David-Healey I would do the first one, but @Christoph-Hart really needs to do it; If I upload a million patches, he will go nuts. It would only take him a week, at most, so I am puzzled as to why he hasn't done it…although I don't know (thus the puzzlement).

      It would solve the other problems, so quickly.Those models can also finish all the things that are incomplete in HISE, very quickly. Likewise, they can generate complete documentation—and automatically keep it up to date. That way, we'd finally have a fully-functioning, documented HISE, at all times.

      posted in General Questions
      C
      clevername27
    • RE: Checking the HISE Source with AI?

      @David-Healey Do you know why not? [Edited for emotion]

      Oh, and Hi Dave, nice to see you.

      posted in General Questions
      C
      clevername27
    • Checking the HISE Source with AI?

      I haven't been around for a year, so I don't know where this discussion is. I am wondering—

      1. Has the HISE Source Code been worked through to help address potential and existing issues in the code, especially the types that are challenging for people to find. I realise that things aren't that simple, with one reason being that @Christoph-Hart has a roadmap for everything, and this might represent an immediate detour.

      2. Likewise question about using it to document HISE.

      3. I have created a HISE language model for the AI coding models that seems to understand the HISE language, with all with its quirks and edge-cases. In my experience, I no longer wonder how to do something, or why something isn't working. Thus far, it has written all my code for me, and I haven't had to make any code-level corrections, and am very pleased with what it has written, both stylistically and in terms of patterns.


      EDIT:

      @Christoph-Hart, @David-Healey

      Obviously, people will ask me to share this model (which isn't really the right word). I'm hesitant, because there's a whole bunch of people here that earn their living writing HISE plugins, and I don't want to disrupt that. It might also encourage people who don't have enough knowledge to effectively use it, and give them a bad experience with HISE. And I also don't know what I don't know about this, and haven't thought it through.

      I'm in the process of sharing it with @David-Healey, and am of course open to sharing it with @Christoph-Hart. As to what becomes of it, I would like to leave it in their hands. In all likelihood, it would need additional work to be better generalised, and might be better used first for documentation, work on the HISE source—these are the types of things they are experts in (and many other things, too).

      I need to prepare for NAMM, and then will be at NAMM, so I may be quiet here about this until I'm back. Also, I've edited my original verbiage to be more measured (as I so often do here, lol).

      posted in General Questions
      C
      clevername27