Community plugin project
-
@Matt_SF Just saying but the knbCtrlValue middlePosition should be -1 instead 0.5 I guess.
The knobs are exactly like I want them to be. I will add this to the actual synth later.
Do you have an idea how to connect the knobs to other knobs in the final plugin?
Maybe I should have a look at macros or something.
With that the pad would be more flexible. -
@UD-AUDIO you could change the middlePosition so the knob appears to be at 12 o'clock but it wouldn't help because most of the parameters (like the 'Mix' in this snippet) don't have negative values.
The corner knobs are just a representation of the pad value. Instead of writing :
grpValKnob[i].setValue(posVal[i]);
you can write something like :
waveForm1.setAttribute(waveForm1.Mix, posVal[0]); //whatever parameter you want
No matter the negative value : when the Mix parameter of the synth will reach 0, it won't go below 0.
-
@UD-AUDIO I didn't thought of it but you could just use an if statement to get rid of the neg values and use them on each opposite knobs with Math.abs().
I'm AFK right know but i'll post a snippet later -
@Matt_SF I was AFK too, but I'm back now!
Macros added but it doesn't make sense to connect them directly :D
This would probably be an additional task. Macros to control the knob
and the pad would only mix between them. This would be optional
so you have to activate it with a button.Cleaned up snippet:
HiseSnippet 3012.3oc6b08baabDGTRvwhwxItIooSdo2nosCUzWDfT1NMsSnr9vVSjrXMkSrGOdx.Abj7pAwgBbThLIZZZesOz+E5+I0uzoul+D5y8ozG6St6cG93.DoDkhkpksnmHRr2d6961a2816.PpGPswggz.sBStSeerVgqo2nuGq8JssHdZarpVgqp+nGipa4ncm99VggXGsBEF+t7VKL4DZhO+vmcGKWKOabJIMsufRrwaR5PXoTqW6yIttqa4f2gzQg6p01vl5sB0k1EPx35k07srelUK78s3rMltVgqrlCgQCZvrX3PsBSbGpS+Fso66I4+KHgjccw7KLzZ.BRRdcpqCGwbpZqzl35TOdDGpABsd53eb43+802h3PRnmZGdWQCnzdnZOJL1QAOCU3UdzgWAE3MgDd2Pugc.wmk1BGaus9FdLbPSKXJPEVRd0F6edC8Un.GdrE5X8L75AvEI8nzsKWdNzMKWdlOcphSUbwE2yJfXAnMb9ypOR87LO5tgnt.VQ61GwZiQ9VdXWDih3nTPA65R7CwnNz8vHaZP.1l41ephf6RHCAHE0JvG7N+bPVneK5IOMZLXYy5Z4BL31EGh5S6h12xiwEcKLC0jFvoE.JL.7v.CQXNQ9E7Nto0t.bhjZ9lU0XZa9zPnsCSWDTgCIeMN3tAzt9F.KBZK.3QLyKtpzzJLhjbN8LYjzWZsGFvem6h8vAVfO2PEULmnTVAYgfObazTE4VgRDn2k+TDA8aPUgulc1Ylp32LUQNWoV1mPdJvVrKDWMzN9TO3hRS6KYY5YKQl0XFNVi5apI7n5tfgA14iSwb2mUXAt.q45+.f+Bg795wBntqX45tKjdozidLzNuOGH8Yl+r9iTMxzonHzblnlTuEwXrtm6PshwLjyKSFaJbiQRXi1hBgpnUtyTEi6C2nJnlXRa10ylQndkv6ARO0UhzDIIsfsKw9YPD+29sHIAm.qVnzK6vk29swX2YjcMRB7Or1jvEbrXVKzCf1VVfKefkWKbjn6gVTxBLB+RhCDBLybHH0FxH1wHqP5OHgzWQH2CSZ0lEIECYnSh6UNWrxBWLgOeIiOVAop5VgeCU9mOSW5OyP5i4PzQ+gvekgqidCSGv3vtM2d3TZ3H+X3v7X4nhJGnL10Cj+7.dOO2hIgHRBr7.jukQ7vmwJTM7Qn2GHUaZzSqY9Fk7XKzDJZZYW2Rw9kkllvvcjkKMc9rdxLc7lJI+B5R.NwEYwEawC41eStBA25AEvL.++EVZjEv.idTDf7u7jL4hhy5E1J1ycFHhz.8wGIRinEqBtv4Q24gBZ9gnOiiPeYFG4IJqYhqS4J+.xA8BQa8VrTdvwUe+EyKgOMS2MDcu+f6rhLU0uR2M4cu2h457Hn2JQ5MeOmUQZI5bdijQsz4bMYUZkdRu4WZNTe9eL3oLK+z7dMO.peCXCXZNT0x7+6oveRV3OimUOgEu+bo4uUZ+PdCiD2oyk8Fji5P5c4Lrmnw9wKJjNDO9XOfi0o7Edu6C2X96XE3R2e9svNjtclFDW0EJm2hsrKokG1YGbOVICyaMOfjmzaVStY1faAMKO.2RvnNsKtIa5iSZ84RSHKSPLUt0fEU.+mBYcdlVlqHdz47qGkW7LQODOWXNFEm6UVwTI63JjlStGhzRYxW0bZwpK3h8ZwZGWEcthWxWQL2SnzzLXh.l3ihBIOM25kokAmtRdNdS4GVFCv19sgsftGNHyldbnQKtJsqw9DQ0fhD6kw.Y44fj64Q9aPkv28QKyXAjcgMRMUwIkcbUJJj0sYSzuF8PnnvjbeQLv0vj.aGduJ7gQj3X3RCn8sH8lKQbxrqSlFgkAvlJ.1bX.N03LXLa7T0UkxogJJZnxoUClGkFppngpmVMTIiFRJuH.6yqtPjp+fyyv13MLXYGPCQmKJcMuVPTrH6ZfXeNNRsW5ISu45aa.gX7uMi9tRz2UmNxEi+uCR9URt.p28oL71dklo32TbxhGTDkuolMGXaQywt3fA1L+zuBNpNVxqamcwAwIehYTqvDYOmI8geNSpGClsbqeJLR81viv11G6MrSeRKZ+hZZEtZDp.VYhSg55QmBUCWhCNPi3nUnndzAAXnIvr5QApcR5uY99+Ce1Ip+U9Qp+pmN8ecckyiv3kfLLOciiLxnxKAYbX6weW6garJrIR9ITF4j.NN93.Fg6SVXU7dDar77JmTeUb3yXTePpIm5fVg2YT7i5knyZ+9Z8SAviq0g5.89mpeeXsCKWxWicpiCrAIa0Bq0g333hqSCI7Xpzt8u9LGbSqttxkQUoGBYTI83AB+RszcVYxQekJKsT0pUz3qSGe9zoT2s0gokJ.UpsEUSodh26yKiTkvdwwtEFW6jYpLGlo546eooJe1gTS02+mtzq5HSDNDS0aXdUSJMUSEemW32ihHKUboVpwezrNUY0xyCpkCH.EKWXSfwGgJj.8izWgeHogygtGkWH+uBsZfUKn9lVZ9T+t9a68.tHDLIWeWcHeMcSyadqkVZoae6xZpiC8riCQMmhwwU0E+VMgq1NYGEbqu1IRZlCSZn8OERSMr84+4erXq5vj1.w1Di5Z9oB869cpPbiZmBwYNTw0+zHtga.OUnanVvbnaJVzMUUJt0coVLvOdGBDlwE56nqRxXXwQ+s90hJzH9lzloJeYHoRtfqDWrSlbAW4Eu3E+wrTMUImIESBUQkNEthNrU9CzNtn4uqYM9o6nU3szWNfX4poc3ag66puE0oqKe6tp2cY9sTOpAdVS0aiK+V05AYS6qVP4YxsbdTg6MzqSX1sGLdGa.3EpU7rFuQ2.+ozWqYSrMKErSnu9iNGta8iqfkql7vTP536huaLTtdDADmhwvdjJd9K9K+7muJ10JiA7KU78p8e+G+6A8PWrgGrfAqN00JHu4e7ri4wGscNNfw4DirOBeHgtv3S+SzEl7KR.V3RbwAvuqNjo9U.3Jueas1xhEvq5T+9c6z.x5aiAn5AKkvOXkBiwqBPdcY90b.0.VwQbAr3vKhZzfecgnFMhaT6jlLvbXIC9tw+O23nSFHpB5xjAWlL3xjAuljLnxQ7vVBUjdYxfKSFbYxfWeRF7g5hswlN7k5TXY9HYaJ1FjrUiiHGw2OpOP19i7Cjc9rDSLZYINl8LcsWoe.reSby6i+F4l2GUS2jQQiFm7o3wGMbdLuF.WWBNc8MWe6HeO3WnDnNB.a8.7enK1yVg3UqwSArQZFjZ+0ZwOaFQ2GujtuItEnHUJ6f63Saz2yV0ioQGJk0VbvdpIVd+ZaRo9q4we+BbTER81Vg7amdHloJlU5Fxnchwh3UAoAC6KOTtmneypK.eZNK+uexJvepr8Kmq0NASeGSUQiMh9VumXlLYJiOm9JdhDIhS7mt.f333WyKH3rxEDbV8BBNW5BBNu4EDbdqKH371ugrgh2IyKwo38GSXGde8C+dk8x3E5bz2+fbI+02Jyh6VAADbvFdN3dpOeQISjGpkG5QBodTATVtCsqGSEzQstJl00KCziZnge.1JSUGbz2.CP0QHxvLNDmI634stbGOuDKGdxXLJO7r071C6R8wQayYU4iaRBUUPtE3O32l5QxT05CvPbZqV3.UnOvwyxLlE+wuHsv1GfcwPMroj9E03u8.VAaIdXYNUlBiQ2TbTSW+LcIbQ7nTzkaT80+MpdMcYVv70jO1qdyxvhUh7xuh.0OPB02VmuoSwplBT9A5C30o978H311lAPXm.KuPeZH1PUx4ZyL68Kf6IXbXRY3hO7VGFdFpGKPLQSUh0s7xHL35LRZKRO0GtO4J+xUY2NzFFrbaWl8920MDKNwZC0NlR1Tk78rBbxeZCmMqUekKWq9xj9WfR5y8A6cwY48OTGRGXhDS2n++OeedrUsWWzQG9tp+Ja4qRBOU4UET.aqm3+i8bE9ICl7Vv7d5FUWnZ0pl2pxmT8127leR0J7GRbxWYayCglGlNFP2SdAXz0KuP4QnCUNocn5InCioeQfY9ZPK2kQ6Hij.B0WSdV4ERNy8Biq8+fINwFn
-
was only meant as an example - if you connect it to the right module it should work.
If you hide it for the time being you can continue working.//WaveformGenerator1.setAttribute(WaveformGenerator1.Mix,posVal[0]);
-
@MikeB This is indeed a very simple but useful trick!
-
@MikeB Oh and for testing purpose it's fine to connect it directly
but best solution in my opinion would be to let the user connect the pad knobs to almost any other knob, just like I said before. -
@UD-AUDIO makes sense
-
@Matt_SF said in Community plugin project:
just use an if statement to get rid of the neg values
@UD-AUDIO this is just fine
HiseSnippet 2915.3oc6bzzbaabETRv0Rwxwt0soStzczz1gL5KBRJYk51ZJqOr0DIKUI4uFU2LP.KI2ZPrn.KEIqil5dqyzC8uP9o3K8d9Ijy8Txwdx8s6BPrfBThR1RwzUzwj.u8809126su8Cms7oV3f.puVlQ2ssGVKy0z2osKq1R0LItZqsrVlap+zmg1xzFUmXa6fQ40tWaOyf.rsVlLCeeNZYFcDMwmu6t2yzwz0BGCRS6wThEdcRcBKF5Vk+Bhiypl13cI0UvtT40rntKQcnM.UZX87ZdlVuvrJ9glbzFRWKyUVwlvn96vLY3.sLibOpc6cpQa5Jw+wj.x9NX9KFZ6.LRBdUpiMWi4OqsTMhi8VQc8.MfoaEaHFVZHtk9FDaRG3wFjaHZ.ESgp8HyPGm5Ynpd4SU8LRS8xnndiHUuapuikOwiE2BW29H80bYX+JlvPfpZIwUan+3M0WhBX3xlot4Kvq5CuzghrKjO+Tn4ymO2cFerwGa1YOvzmXBZavzmWejx4Etz8CPM.cEseaDqFF4Y5hcPLJhqkBHXGGhW.FUmd.FYQ88wVLm1iOF3tDvPflhp56AtoeAvKzuCs2yC6ClVrFlN.BNMvAn1zFnlltLNqqhYnJTeNLePf9fGFXHB5hkOlS35l6CpSHW6tYUIF2lGM.ZiCGrog+WRLdh4AXP90uO1E6aB9LF.1hfuY.US3DHdK6DGEyIjCQb0OKAHK+cPDzuEUB9YxIyM9Xub7wPvmXSxdjmCnEM1y4OstG0EdI6DdRTlXxrjIMxw4bHsw88iibABoR7IIX939RLeG.0tnOE0el.NstLepyRlNN6C4Ex9zmAsyo4P4f8zm2ejhILgXn1btHlX2DQebKWmdZEiPP3SDSmLnR3WhjpMZCJDigV5diOVDMbip.ZGSZkFtVLB0MK9.f6wtRjJHInYrbHVu.BU+puBIAX6aVEE+ZcN+ZVCicxIIMjC7OrZjfYrMYlyzBTsMLAeceS2p3PV2BMqDEnG9DhM36mSD4fLhbLRxj1owj1JL4AXR0ZrPt.LIjCw7RwEKuvES3ym03yTzTUYqfugJ9Smfj145AME5gLZ2C7K1aYzpWx.5GV031C6r8VyOALJbhXTTECTB65gxGOjS4EVLIDQRf759zFLhK9bVfpgOB4tsTrwQOUy8Rk7XyTAp1YQGmrQ9kYmfvv0k04LQ2Y8jY53MkU9CPhOtiKxryVkGx0bct.A25zBXRw+el45aFjZziBCjeySxzDB.6h76D2ZMkVi30QXQWIBR5HWMx4OGDTaf9LTSgtzTUJ7j.0PS2ClXjBSpIXRM4bnb1HmrFDHvJHNq0rMyALr8r0tSh1M3s2d1lPas5tsB71ZIZ6HzUTvWNgSxIL2zFcjrz0XEYwMY2q0zyMEpM+KCdBq7Ou6wrsgxd.z.jlBUJO+uOG9pyztIFWaI5lsmJN6oR6GYPuuvN1inUZtI8f57IPuiDaGkRNtKdxd9.FqR4S6c+Gs1z2yz2g1b5Mv1jF0m.XWoYx2sEaQGRUWr8t3VrrFEt8zflrWqIKvMyFbKXg7oDu.F0IbvUXSbRbqMmaBdU.XSwamNq74OJ30EYRQtf3w.SuZXVoyE4PbcfwXTTlOY8JYshpOYJYo2wERzcMqwkJNiC1sJqVTMrhRGP83S7bR7BSBiyfRM+8.eyE2nRoGoUSK2aJ6DLXvDbd5vD0Y7NRwrwyGmJ9GF+HLmDzUaVCVH3AX+DK8vlFNSYTxvnzAyNaXQkHwpJLPlt1H4pOjOCRG9sMZQFymrOrjlwGaTIgKSQArFUpf9MnGAU40IkVHBQRJD6itjBdGKjqLb1TZeCRqo5vUYtyQiicSn2ETz6B8RuisSoq5FOWcphtjPQEIT7rJgBGmDJoHgRmUITLgD5T1fO1iW0fX1vCuHSHDsP.SKeZ.5BQnq3VExOHxa6KV+hsT5Y2ah0WcSCHvi+agt9s3DgtX7+b3ch0dXQuQYZntOjxva5lM2XubrQG6vwPc2TkJo1V33rC1O0l4aIk+wQXV2F02G6GkZKBQsLijbyez68l+nt2TVxk0ofH0cMWBaSOrau1RHsv0Bpok4pgZEfJSr0PWObqg1wgXi80H1ZYFSObQ9FZBcVc+4zNMzWna5+t6dpnu3ao7Kc1j+00U1qAi2A7nvYqejfGEeGviRoviGs1xvBD4aaXnSB333g8YDtOYlkwGPrvxMQbT8kwAufQ8.t1YGEzx7w8ieTqNxr7etb6XE3YkqSsAp+Y5ODl+vzg7Ww1ag8s.NaVEqI2E4snADdLULYe6cswULa3HmbUEd.jUkzhGH7qzhW0TAt1Wr3byUpTQM9L3QaZbLz8qdTXwLPEZMQsZpaCcSdQpp.NHJ1MyvZmNSUgdYpdcyKMUcmcH1T8M+8K8pN1Dg8vT8+YdUiJMUiGcbH7CNHzREUtkZ7GMoSURo7Z+xcoH.DSGXIlQaOJj.8S0WhuAnASgd.kWW+uFsruYUnFmpZdTuFda5tMmEBjjyuq1kuldgBye64latEVfePTw8C8j8CQcmh9wU0EOqlvET73dQ4+TYt0Gd+JJyhz27UM6zqT4q2Keq3qZn7+Hg+4am9VpW78aOd8cj9s1fdXle8en7Yfc8z590MOKrqmF0xaeVXWOsk2nUB1MNK7DQkraUGpIC722k.gibl9w5pfL5U71W2tbXAIQmvZhUDHCcUxYzYbLQNiq7l27l+VRnETAmHUTGnhJhxbE8WBqlP6jh5eUkx78XRKyOReQehoil1QO+0anuA0tgCeowpGML+7vCafmcU8LX4mypKj0ssZgmmKmWb+pt2TeKBypV556PonuPMkm25a3ouOt9JUpfsXwJ6H5q9zKfiZeXEc4pctRDj5dN36GoJWOD.hCwnW2GhW+l+4u30KicLSX.ehhuW4+6+9+j1MlXMWXhE1VTGS+tM+CmrOOb+sByT5miz29H7tDZfwm9GqKL4CRJrvkXvQgugNjo98.0UdlaU2vj4yqNU+gMpuCj02BCppKLUBeCXxLDuJ.4644uyUncfYbDu.SN7lvFM3umIrQinF0NsICJzqjAuZ3u+lGex.Q8FWlL3xjAWlL3CjjAEOlaJITQ5kICtLYvkIC9.HYvOUZR9Hc9glJtxlBqwszO5gndLYD9l98tS6022c5MsXfFrquoafGM.VXtBm6psBISMwZ3lDcInDXw6cqB8NC0AzHfETABdEIXF7dBNsAokJ5q3xuzw6fgdi8lAVPmka6RvvFNAXQvgg5FUFCtfJ3GX5yuIsVGW5xQ5uzkCzWi7KtcwX39ScOga59nQ5nbN0Uf49bn.jnj4hcqNBZxPqMntTuZTWRhA8swPBgpUwI7kRsCsHiYx291HH2p71XGrYfR31urL+tMY5ugXy1OS1Bi92VbbiW+bco5h34CPeXr6SC+AztOYbNDgBoLGbFo+DcHMdAjX3F8C+38OLqU3SzE6xcb2WJSgA5SksoXaPxVufKX3sdVwT2R0qc4rhWlc88f81ueMciFFMZ7NcH9TTFo5D+WWpn55qu5lg9gvSnNpcenjq5i+KMvtVJ.uZYd5f0hylT9eUNZ0JgWMnNjuNtJHHUH6hq6Q6th5cpSorZhy.TMIysJuNk5IKo2NQM70fxo1rRk.LSkMK0HfQqGoKh+IetCC6IO+t8zmuzLvmJSx+9yWB9p3luadW6cWcaC0m9Y+DwHYmgL9X564IUjZbG+oA.MNJVtv.hdVb.QOKMfnmyMfnmyOfnm2d.QOW3C48d7hPF04lwuzRdcj4ypcUADne6J9eECWgOUPmaR8szyOiwb4megELJYL2BkJ94yWheSCIeokEu7toAaUJz24VTqCzm+7ffhmBBfRMF.Plu9nEa.0HIqpG.r0JxpixzoJqLCq8+39GjNE
-
@Matt_SF Thanks again! This is ready to add :) Great job!
-
This post is deleted! -
@UD-AUDIO I'm not a pro GUI designer but if you like working with big images, I don't see why you shouldn't. But IMO this size it too much for a plugin, you should leave room for the DAW to be displayed. For my taste, 65-70% should be nice (without the wood part :grinning_squinting_face: )
-
@UD-AUDIO Keep total assets below 50mb (the images are raw bitmap, they are not compressed once in your plugin).
You can see the total size in the image pool, this is the value you should keep below 50mb.
-
@Matt_SF I agree on that! Well I like the look with the desk.
A negative factor with resizing it to lower sizes is that the synth is a bit tiny because of that desk.
Maybe there is a way to have the desk optional. But I guess this would need rework
for the whole GUI and this is only doable with vector graphics right? Or maybe with panel magic?! -
@d-healey I will keep this in mind! Thanks :) The image pool is 36mb with one skin only.
I will add more skins to it at the end. 1900x900 GUI image is 1.,33mb -
@UD-AUDIO as David says, look how many Mb the sum of your images is already.
The invited images are not compressed.
So if you use a 1200x500px image of 450kb in HISE it will take up 10MB of space there unfortunately. -
@MikeB In Affinity I mostly decrease the quality of a jpg file from 100 to 95%
which has almost no loss in quality but less than 50% of the filesize with 100% quality.
But I don't like the "almost" so I go with png for max quality. -
@UD-AUDIO said in Community plugin project:
I mostly use a 5% compressed jpg
There is no compression once it's in HISE, it is a raw bitmap.
-
@UD-AUDIO Unfortunately HISE doesn't care what you use - it doesn't matter at all.
As soon as you import it into HISE it is 32bit and uncompressed and 20x bigger.HISE reserves a colour space of 4,294,967,296 colours = 32BIt for each image. Even if your picture has only 2 colours.
So you can compress it or not.
The only thing that matters is the number of pixels. -
@d-healey 5% compression was wrong. It's 5% quality reduction. I didn't use that method with HISE.
But how can the image in HISE be uncompressed when my export from another app isn't?
Does it encode the file or something? Just curious..