HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. clevername27
    • Profile
    • Following 0
    • Followers 9
    • Topics 335
    • Posts 1,604
    • Groups 1

    clevername27

    @clevername27

    Audio scientist, producer/engineer, software developer and musician. Academics: Studied for my PhD at Glasgow University's Centre for Music Technology, and MMU. Research support include(s) UK government, universities and Apple. Musical credits (producer, engineer, performer) include Steve's Vai, Steve Lukather, John Petrucci, Deep Purple, Alice Cooper, David Foster, Albert Lee, Joe Bonomasa, Steve Lukather, Chad Wackerman, Marco Minnemann, Steve Morse and Mike Portnoy. In Software, most recently co-designer and business architect of Steinberg's first release of SpectraLayer (Version 6); currently part of the VST Live team. Using HISE for prototyping drum processing software. (My thanks to David Healey and the contributors on the forum.)

    614
    Reputation
    492
    Profile views
    1.6k
    Posts
    9
    Followers
    0
    Following
    Joined
    Last Online
    Website www.billevansmedia.com
    Location Dallas, TX, USA

    clevername27 Unfollow Follow
    Beta Testers

    Best posts made by clevername27

    • My Plugin (SpectraLayers) is Now Part of ProTools

      I'm delighted that the plugin I was a co-designer on is now included with AVID's Pro Tools. Which is also ironic, because I still can't afford Pro Tools, and cannot (myself) build AAX plugins. But there it is.

      posted in General Questions
      clevername27C
      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
      clevername27C
      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
      clevername27C
      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
      clevername27C
      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
      clevername27C
      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
      clevername27C
      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
      clevername27C
      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
      clevername27C
      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

      :keycap_1: Find your Team ID and Entity name in Membership Details within the Membership section.

      screenshot1.png

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

      screenshot2.png

      :keycap_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


      :information: 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.

      :keycap_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.

      :keycap_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.*

      :keycap_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

      :keycap_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.

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

      screenshot12.png

      :keycap_5: Click "Continue", and download the Certificate to your mass storage.

      :keycap_6: Delete the Certificate Request file.

      :keycap_7: Install the Certificate by double-clicking it, and following the on-screen instructions.

      :keycap_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.)


      :information: 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.

      :keycap_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

      :keycap_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.)

      :keycap_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

      :keycap_4: Choose App-Specific Passwords.

      Screenshot 2024-05-19 at 9.23.49 AM.png

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

      :keycap_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.


      :information: 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.

      :keycap_1: In the Account section of the Apple Developer site, choose Identifiers.

      screenshot20.png

      :keycap_2: Click the "plus" icon.

      screenshot21.png

      :keycap_3: Choose "App IDs".

      screenshot22.png

      :keycap_4: Select "App".

      screenshot23.png

      :keycap_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.

      :keycap_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.


      :information: 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
      clevername27C
      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
      clevername27C
      clevername27

    Latest posts made by clevername27

    • RE: Roadmap to HISE 5

      @Christoph-Hart That's what I got from this:

      7fb951ee-2b04-45fa-9ad9-e5258c8ac9c9-image.png

      I should mention that I'm rarely here any more, so I may miss your reply. I do still check in from time to time.

      posted in General Questions
      clevername27C
      clevername27
    • RE: Roadmap to HISE 5

      @ustk Thanks for the solidarity. It's not trolling…I think it's a valid reaction, and suspect I'm far from the only one. And it's the kind of thing no one thinks will happen to them…until it does. @Christoph-Hart wrote right on the website's front page not to expect fixes, so it's not like he dropped the ball. But we can still be frustrated about it. When it works, HISE is great. But you know the saying…it's only free if you don't value your time.

      posted in General Questions
      clevername27C
      clevername27
    • RE: Roadmap to HISE 5

      @Christoph-Hart Meanwhile, I was fired by all three clients because of HISE bugs and secret ScriptNode documentation. sigh

      posted in General Questions
      clevername27C
      clevername27
    • RE: I wasted 3 hours on deepseek trying to create Autotune, Reverb and Delay in Hise

      @Christoph-Hart Hero.

      posted in Scripting
      clevername27C
      clevername27
    • RE: Tired of this error on Startup

      @ILIAM What are "NOMINMAX" and "HISE_USE_EXTENDED_TEMPO_VALUES"?

      posted in General Questions
      clevername27C
      clevername27
    • RE: Engine.getSamplesForMilliseconds() not working

      @d-healey It's those kinds of catches that make you a legend, mate.

      posted in Bug Reports
      clevername27C
      clevername27
    • RE: HISE supports gif images

      @d-healey This is the way.

      posted in Feature Requests
      clevername27C
      clevername27
    • RE: WTF is This?

      @Christoph-Hart Sure! I was able to successfully compile the "Clone Test" Network on GitHub. My Network has Clonepacks, and I think they may be a factor for me. Here's the Network I'm trying to compile. Thank you.

      <?xml version="1.0" encoding="UTF-8"?>
      
      <Network ID="prismNewerHybridModeller" AllowPolyphonic="1" Version="0.0.0"
               SuspendOnSilence="1" AllowCompilation="1">
        <Node FactoryPath="container.chain" ID="prismNewerHybridModeller" Bypassed="0"
              Name="prismNewerHybridModeller" NodeColour="4288387995" ShowParameters="1">
          <Nodes>
            <Node ID="chain" FactoryPath="container.chain" Bypassed="0" Name="chain">
              <Properties>
                <Property ID="IsVertical" Value="0"/>
              </Properties>
              <Nodes>
                <Node ID="clone_pack2" FactoryPath="control.clone_pack" Bypassed="0"
                      Name="clonepack_frequency" NodeColour="4278233087">
                  <ModulationTargets>
                    <Connection NodeId="oscillator" ParameterId="Frequency"/>
                  </ModulationTargets>
                  <ComplexData>
                    <SliderPacks>
                      <SliderPack Index="1"/>
                    </SliderPacks>
                  </ComplexData>
                  <Parameters>
                    <Parameter MinValue="1.0" MaxValue="16.0" ID="NumClones" DefaultValue="1.0"
                               Automated="1" SkewFactor="0.9094748120090845"/>
                    <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Value="1.0"/>
                  </Parameters>
                </Node>
                <Node ID="clone_pack4" FactoryPath="control.clone_pack" Bypassed="0"
                      Name="clonepack_volume" NodeColour="3422552319">
                  <ModulationTargets>
                    <Connection NodeId="oscillator" ParameterId="Gain"/>
                  </ModulationTargets>
                  <ComplexData>
                    <SliderPacks>
                      <SliderPack Index="2" EmbeddedData="64....f+....9C...3O.........9C...3O...f+....9C...3O...f+....9C...3O...f+....9C...3O...f+."/>
                    </SliderPacks>
                  </ComplexData>
                  <Parameters>
                    <Parameter MinValue="1.0" MaxValue="16.0" ID="NumClones" DefaultValue="1.0"
                               Automated="1" SkewFactor="0.9094748120090845"/>
                    <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Value="1.0"/>
                  </Parameters>
                </Node>
                <Node ID="clone_pack" FactoryPath="control.clone_pack" Bypassed="0"
                      Name="clonepack_duration" NodeColour="2315321299">
                  <ModulationTargets>
                    <Connection NodeId="ramp1" ParameterId="PeriodTime"/>
                  </ModulationTargets>
                  <ComplexData>
                    <SliderPacks>
                      <SliderPack Index="0" EmbeddedData="64.tdTH+7Qgq6ilYlwOEtdD+zLyL7SgqGwO......................................................"/>
                    </SliderPacks>
                  </ComplexData>
                  <Parameters>
                    <Parameter MinValue="1.0" MaxValue="16.0" ID="NumClones" DefaultValue="1.0"
                               Automated="1" SkewFactor="0.9094748120090845"/>
                    <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Value="1.0"/>
                  </Parameters>
                </Node>
                <Node ID="clone_pack3" FactoryPath="control.clone_pack" Bypassed="0"
                      Name="clone_balance" NodeColour="4287842047">
                  <ModulationTargets>
                    <Connection NodeId="gain" ParameterId="Gain"/>
                  </ModulationTargets>
                  <ComplexData>
                    <SliderPacks>
                      <SliderPack Index="3"/>
                    </SliderPacks>
                  </ComplexData>
                  <Parameters>
                    <Parameter MinValue="1.0" MaxValue="16.0" ID="NumClones" DefaultValue="1.0"
                               Automated="1" SkewFactor="0.9094748120090845"/>
                    <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Value="1.0"/>
                  </Parameters>
                </Node>
              </Nodes>
              <Parameters/>
            </Node>
            <Node ID="dynamic_blocksize" FactoryPath="container.dynamic_blocksize"
                  Bypassed="0" Name="dynamic_blocksize" NodeColour="2134834944"
                  ShowParameters="1">
              <Nodes>
                <Node ID="clone" FactoryPath="container.clone" Bypassed="0" Name="clone"
                      NodeColour="4288020224" ShowClones="0" ShowParameters="1">
                  <Nodes>
                    <Node ID="clone_child" FactoryPath="container.chain" Bypassed="0" Name="clone_child"
                          NodeColour="2072874381" ShowParameters="0">
                      <Nodes>
                        <Node ID="voice_bang" FactoryPath="control.voice_bang" Bypassed="0"
                              Name="voice_bang" NodeColour="4287561908">
                          <Parameters>
                            <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Value="1.0" DefaultValue="0.0"/>
                          </Parameters>
                          <ModulationTargets>
                            <Connection NodeId="ramp1" ParameterId="Gate"/>
                          </ModulationTargets>
                        </Node>
                        <Node ID="ramp1" FactoryPath="core.ramp" Bypassed="0" Name="ramp" NodeColour="4294942208">
                          <ComplexData>
                            <DisplayBuffers>
                              <DisplayBuffer Index="-1"/>
                            </DisplayBuffers>
                          </ComplexData>
                          <Parameters>
                            <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161"
                                       ID="PeriodTime" DefaultValue="100.0" Automated="1"/>
                            <Parameter MinValue="0.0" MaxValue="1.0" ID="LoopStart" Value="1.0" DefaultValue="0.0"/>
                            <Parameter MinValue="0.0" MaxValue="1.0" ID="Gate" DefaultValue="1.0" Automated="1"/>
                          </Parameters>
                          <ModulationTargets>
                            <Connection NodeId="cable_table" ParameterId="Value"/>
                          </ModulationTargets>
                        </Node>
                        <Node ID="cable_table" FactoryPath="control.cable_table" Bypassed="1"
                              Name="cable_table" NodeColour="4278255501">
                          <ComplexData>
                            <Tables>
                              <Table Index="0" EmbeddedData="24..........9C...vO...f+.........vO"/>
                            </Tables>
                          </ComplexData>
                          <Parameters>
                            <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Automated="1"/>
                          </Parameters>
                          <ModulationTargets>
                            <Connection NodeId="gain16" ParameterId="Gain"/>
                          </ModulationTargets>
                        </Node>
                        <Node ID="no_midi" FactoryPath="container.no_midi" Bypassed="0" Name="no_midi"
                              NodeColour="2391246727">
                          <Nodes>
                            <Node ID="oscillator" FactoryPath="core.oscillator" Bypassed="0" Name="oscillator"
                                  NodeColour="4287663758">
                              <ComplexData>
                                <DisplayBuffers>
                                  <DisplayBuffer Index="-1"/>
                                </DisplayBuffers>
                              </ComplexData>
                              <Parameters>
                                <Parameter MinValue="0.0" MaxValue="4.0" StepSize="1.0" ID="Mode" Value="0.0"/>
                                <Parameter MinValue="0.0" MaxValue="20000.0" ID="Frequency" DefaultValue="20"
                                           Automated="1"/>
                                <Parameter MinValue="1.0" MaxValue="16.0" StepSize="1.0" ID="Freq Ratio"
                                           Value="1.0"/>
                                <Parameter MinValue="0.0" MaxValue="1.0" StepSize="1.0" ID="Gate" Value="1.0"/>
                                <Parameter MinValue="0.0" MaxValue="1.0" ID="Phase" Value="0.0"/>
                                <Parameter MinValue="0.0" MaxValue="1.0" ID="Gain" DefaultValue="1.0" Automated="1"/>
                              </Parameters>
                            </Node>
                          </Nodes>
                          <Parameters/>
                        </Node>
                        <Node ID="gain16" FactoryPath="core.gain" Bypassed="0" Name="oscillatorVolume"
                              NodeColour="4282992969">
                          <Parameters>
                            <Parameter MinValue="-100.0" MaxValue="0.0" ID="Gain" Automated="1" StepSize="0.1"
                                       SkewFactor="5.422270979580217"/>
                            <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161"
                                       SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/>
                            <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161"
                                       SkewFactor="5.422270774841309" ID="ResetValue" Value="-100.0"
                                       DefaultValue="0.0"/>
                          </Parameters>
                        </Node>
                        <Node ID="gain" FactoryPath="core.gain" Bypassed="0" Name="perceptualFreqPad"
                              NodeColour="4289177511">
                          <Parameters>
                            <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1" SkewFactor="5.422270979580217"
                                       ID="Gain" Automated="1"/>
                            <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161"
                                       SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/>
                            <Parameter MinValue="0.0" MaxValue="-100.0" StepSize="0.1000000014901161"
                                       SkewFactor="5.422270774841309" ID="ResetValue" Value="-100.0"
                                       DefaultValue="0.0"/>
                          </Parameters>
                        </Node>
                      </Nodes>
                      <Parameters/>
                    </Node>
                  </Nodes>
                  <Parameters>
                    <Parameter MinValue="1.0" MaxValue="16.0" ID="NumClones" DefaultValue="1"
                               Automated="1" SkewFactor="0.9094748120090845"/>
                    <Parameter MinValue="0.0" MaxValue="2.0" StepSize="1.0" ID="SplitSignal"
                               Value="1.0" DefaultValue="2.0"/>
                  </Parameters>
                  <Properties>
                    <Property ID="IsVertical" Value="0"/>
                  </Properties>
                </Node>
                <Node ID="converter" FactoryPath="control.converter" Bypassed="0" Name="converter"
                      NodeColour="4294901760">
                  <Properties>
                    <Property ID="Mode" Value="Samples2Ms"/>
                  </Properties>
                  <ModulationTargets>
                    <Connection NodeId="jdelay" ParameterId="DelayTime"/>
                  </ModulationTargets>
                  <Parameters>
                    <Parameter MinValue="0.0" MaxValue="44100.0" StepSize="1.0" ID="Value" Automated="1"/>
                  </Parameters>
                </Node>
                <Node ID="jdelay" FactoryPath="jdsp.jdelay" Bypassed="0" Name="jdelay"
                      NodeColour="4283387727">
                  <Parameters>
                    <Parameter MinValue="0.0" MaxValue="1000.0" ID="Limit" Value="1000.0" DefaultValue="0"/>
                    <Parameter MinValue="0.0" MaxValue="30.0" ID="DelayTime" Automated="1"/>
                  </Parameters>
                </Node>
                <Node ID="gain19" FactoryPath="core.gain" Bypassed="0" Name="articulationGain"
                      NodeColour="4293263104">
                  <Parameters>
                    <Parameter MinValue="-100.0" MaxValue="12.0" StepSize="0.1" SkewFactor="5.422270979580217"
                               ID="Gain" DefaultValue="0.0" Automated="1"/>
                    <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161"
                               SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/>
                    <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161"
                               SkewFactor="5.422270774841309" ID="ResetValue" Value="-100.0"
                               DefaultValue="0.0"/>
                  </Parameters>
                </Node>
                <Node ID="gain17" FactoryPath="core.gain" Bypassed="0" Name="instrumentGain"
                      NodeColour="4294901918">
                  <Parameters>
                    <Parameter MinValue="-100.0" MaxValue="12.0" StepSize="0.1" SkewFactor="5.422270979580217"
                               ID="Gain" DefaultValue="0" Automated="1"/>
                    <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161"
                               SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/>
                    <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161"
                               SkewFactor="5.422270774841309" ID="ResetValue" Value="-100.0"
                               DefaultValue="0.0"/>
                  </Parameters>
                </Node>
                <Node ID="silent_killer" FactoryPath="envelope.silent_killer" Bypassed="0"
                      Name="silent_killer" NodeColour="2386509631">
                  <Parameters>
                    <Parameter MinValue="-120.0" MaxValue="-60.0" StepSize="1.0" ID="Threshold"
                               Value="-120.0" DefaultValue="-100.0"/>
                    <Parameter MinValue="0.0" MaxValue="1.0" StepSize="1.0" ID="Active" Value="1.0"/>
                  </Parameters>
                </Node>
              </Nodes>
              <Parameters>
                <Parameter MinValue="0.0" MaxValue="7.0" StepSize="1.0" ID="BlockSize" DefaultValue="4.0"
                           Automated="1"/>
              </Parameters>
            </Node>
          </Nodes>
          <Parameters>
            <Parameter ID="numberOfClonesProcessed" MinValue="1.0" MaxValue="16.0" Value="13.97461125837058"
                       SkewFactor="0.9094748120090845" DefaultValue="1.0">
              <Connections>
                <Connection NodeId="clone" ParameterId="NumClones"/>
                <Connection NodeId="clone_pack2" ParameterId="NumClones"/>
                <Connection NodeId="clone_pack4" ParameterId="NumClones"/>
                <Connection NodeId="clone_pack" ParameterId="NumClones"/>
                <Connection NodeId="clone_pack3" ParameterId="NumClones"/>
              </Connections>
            </Parameter>
            <Parameter ID="articulationGainInDb" MinValue="-100.0" MaxValue="12.0" StepSize="0.1"
                       SkewFactor="5.422270979580217" Value="0.0" DefaultValue="1.0">
              <Connections>
                <Connection NodeId="gain19" ParameterId="Gain"/>
              </Connections>
            </Parameter>
            <Parameter ID="medianStartDelayInSamples" MinValue="0.0" MaxValue="44100.0"
                       StepSize="1.0" Value="0.0" DefaultValue="0">
              <Connections>
                <Connection NodeId="converter" ParameterId="Value"/>
              </Connections>
            </Parameter>
            <Parameter ID="blockSize" MinValue="0.0" MaxValue="7.0" StepSize="1.0" Value="5.0"
                       DefaultValue="1.0">
              <Connections>
                <Connection NodeId="dynamic_blocksize" ParameterId="BlockSize"/>
              </Connections>
            </Parameter>
            <Parameter ID="instrumentGainInDb" MinValue="-100.0" MaxValue="12.0" StepSize="0.1"
                       SkewFactor="5.422270979580217" Value="-100.0" DefaultValue="1.0">
              <Connections>
                <Connection NodeId="gain17" ParameterId="Gain"/>
              </Connections>
            </Parameter>
          </Parameters>
        </Node>
      </Network>
      
      
      posted in General Questions
      clevername27C
      clevername27
    • RE: WTF is This?

      @Christoph-Hart Thank you, that fixed this particular issue. However, I'm now back at the old issue of not being able to compile clone networks with clone packs. As I reported on GitHub, I posted several threads with example code, where other HISE developers experienced the same problems, and we collectively tried to track down the source code. Might you be able to please look at that?

      Thread #1

      Thread #2

      Thread #3

      GitHub Post

      posted in General Questions
      clevername27C
      clevername27
    • RE: WTF is This?

      @Christoph-Hart Thank you - I see you've pushed it already. I'll give it a shot.

      posted in General Questions
      clevername27C
      clevername27