Just finished the UI of the first effect pedal in my synth today.
I'm not good at 3d graphic design, it's way much harder then i thought but i just tried my best.
still got another 19 pedals to go...anyway hope i won't stuck in these ui things for too long
Best posts made by Allen
-
RE: More Positive Posts?
-
RE: Saturation Models (Neve, Tweaker, Oxford Inflator) in FAUST
Thank you for sharing these!
the inflator algorithm looks a lil bit weird, i think it should be like this:
a1=1+(curve+50)/100
a2=curve/50
a3=(curve-50)/100
a4=0.0625-curve/400+curve^2/40000x=a1・x+a2・x^2+a3・x^3-a4・(x^2-2・x^3+x^4)
the curve value should be in the range of -50 to 50 but you could intentionally set it to somewhere over 50 to achieve some weird distortion effect.
also, the inflator is mainly control by input gain and curve so you may need to add a input gain by doing something like:
x=x0・preGain
(the effect param in the original plugin is actually a little bit misleading, it's just a dry wet mix and seems like it was only designed to be set to 100% or 0% to make it sounds "natural")
I'm sure several inflator clone use this algorithm and with linear phase oversampling it somehow even sounds better then the original one :)
-
RE: Creating an array from an image
@griffinboy
I found a weird way to do this, actually we could turn the image file into a big array externally (by using a c++ or a python script or something else) and store it into an single channel audio file. And then we could simply do something vary similar to a 2d wavetable, just read the rows/columns as cycles and interpolate between the cycles next to each other. If there's more than 1 plane we could store the data of rgba planes in the same array in order like this [a r g b], and then read them separately by transpose the index. This will also give us a Z axis so we could interpolate it with both data from rows and columns to get new values.The whole structure will be like this:
I wrote this simple demonstration patch today
HiseSnippet 5828.3oc6bsuchijdG2yvlwryrYm8jjyI+Wc58blfagkk.CHld6IsQ9FtAKY.eq6i2cDHInrERXIAFX8jLIuQ4MXdT1Gg7DrcpKRnha1z1t6LYxpdFrp6+9tTe02WURR00oogmmiarURTeXWiXq7kwqMz1usbaMncrRaiynTGsVFa45pMLVwgc077LzisxJe1d3ZrxpedLx0+8+ZQMKM6lFQYEK1INvlFkgcf9Q4p952.sr1US2nNrCSs270kZ5XK6X4zCglOKtPrtZMuBMxGpgq1yhGaeMu1wV4EwapIjyrYiBlBFoyap2HeCiMyZTP2nPNolYMkxJkIsQFobwV4WsiNz2wslulugWrU97hN5Cq014Fa5.bBzC1vx.mPLVMzHSydWGKcLIhyMlbanktZHaxKFpWTiXZeFko8ODuBTGNN+Hl2ukT.HpErLvUd1jv6yl.dhrvSfAdyARqv.o3TH80wq0zE10OpDLd90wKY6a3ZpgjSrP4vdcpYA0MbUQ7bDThuxmgDIzdH1yF8GhK6fZmsOeGsqL10EkXb+jLmfPJ.5m0dYhDI1Xi0uiqttFc0bM.djwBKe8.eCvDZYf+quFhZ8tq1i6eKGMcbKRrK5mZC87M5viyamAZc5ZYrEhj78Rh.CRaxyGzWyErUOcnCt5fWA1wtEz1fzhwY6gHFGUGGqjq8NgKXaoYcmpFZ5n1wLZltNcpZXZ3ZfT2q46BsakbbekhslQivX7znmIpknNLnqoHwabMSRYiuHw5+R4JA3C5JAa8SuMnxV0qV5LPRMfGhQijgtsZ.bbAZVcaqA5hr4X.bLAZ1.H1N0ZKpeE2FrU0pacNpmrAZX1MQwasDef36maWKF9MG1zxnrgcK+1exPiKd1hqyMdIGr129nPO451Os7x2sEnHPFrMXGvt777W.RAd2df8Ak.G.dCnLNqT.zu2O5eUz0+qqHb6RyPIZLkr0MF7sOVz76+8TcAMKKfGwxrG.ZCbPyVIixbgaRA7zWFg.J05q+c.YbKDlo5r4HxZ0f49LL2u4cBWcMeMfEc5BRpkVGzQCYbe.3FnNMqolPMWJPDSAL5LrTfXjpw28cX0sIHU1FcHnBPAnBNBTETCTGbL3Dvofy.7i+2ES1UODkijowXkcnXvZ5YUi98QW2tDpW2trJsQZc3wecPxLXbwR1L3JybUuQVbPqbubX416w5USGqdcr8RNbrAr4x71DCRdl+w.xMW54fO.PhLRsGRpUKz.UQjdSEP8wFmlGZ4C9kEs3LhLkM4rAlku+ft+CSAbdC9Xd3gKmcFpzhH7eHlmNDMUlw7jgVy1T8QukEvKw0e7wab+trO01.1psONuNZCXlMst3SnqM29wbEpG.bdp7ONjz9+JtG+o0aoeVCtORnaQAJ7fgVFTPLZCHSUS1Vqug8+hOJVEjImNnHpMzuuNt+GK2zaX3eiggMMFJujiV6a+YdnPXi0z.9P15dm.WRj0Pg0EW6EcsfOgpDA1XwAUN1JaSz5CO4WhSPAKD5NAVJbt+dzDEXL1EapHEP5909XHJROEzcS0JUiTZgC753kwAfMn4C1XYl7e6LlFeDlLtCOiyrLb8Hd9s2eOh7i2ETzEH6B11k5T0Vs.EaAjaA1tUPFM.Ea.ja.1tQPFZfhZ.YMv1ZjLVFGXlvesKRrHSYznJtcoL4d68myclwhbgbtlCQylB8xinebaPnO2hzTl4h5VFxqLjqLIgqMY3d.XjTTbpzomtBYlLYj0BFGAYbBTGZR1bOefmQSenisG1VfeaCJcLG6Ae.yP+XdIhB2FuM8fjP.G1Ll.3EnYjv0RAzr0QjlugaWGKMeiGrsRp4WhLAjD20eKvn02BzdkPJf6qDSAZ8pzo.MdUlW9XIlafHavXldSGWWCutN15P6Vj8VZifPzl6VF9f8O3iYs+YzERMswPvVVH0iOLB9WL6G8K1fbPEQGBANxJlM8O5jP1FUvVQGZPSjkBeisr0qZzB5glLMYMSJLwoNLYgEW9tQ7N5lJZP6ktiRi5HDcZ3WUytkQhonK9vBRJvmBHh9eAdA7XOEvWx5gQ1Bq5FaXAsuB36.VHuVDwfBOkoVF9xNcPS4QIR9bl577EvZRuDMN8hZblknwYd9DDrHuK9.fp6P3yyxHlnxouiJu0D0LycTyh3CFZiMHGRFCYTGmdw7NZwOmHBZzy22wl3iHxfpgO8.2R.sQxFCfYOaxhcH+GKRpnHtGccrR1Lr6RgFQqdFqk3OmXUZGyS5H7YVsZhUQcbR3qDdI7OvrQoT.WqolkwtZM8cbWW7kPNt0PcQXenoqStS0AsBERyQfn1f6ye3kIP+27or.P970vJcAPUVyxpAhekbZZfbnZ2ygSFcExJ7VVKJj9NbuQC1eaZTDafVuJ7V5pV.6dcZX35wHCY2W4WAxJl9kS0izlf8Bg5eMSaIYbXuNnFJNcyzctw1Cy4AlDVOQzOsBzzxGbGka5dJvWr.b32Vym50TWTJKGmtL8GtpH7nhrF0DE.8bfUKrpWaiYopo0DQUTMf7RZlJjRwpNIV0xAAYPWJkaxGvhCqCQez0vumqMoN3z+v8iC5N+gkYd3iXLrBABN5XLOTR2vRBJYjkyEwHsWUZHrKh7dYTkaRIuJZ9s4MQ7Y2jgMeClwYMVps4hn1wmL2Fzc4lPpfYnFbgUQ0ZqonknsUjdKZXREHpoj2Fu.+qH4JwpBjqnMVibbGzBAAkQ+yEfvJiaNZo4wDuFhxe2EXZA2MZ7nAUykg4zfkQQO9f.VUGncx4fWVNqmulqOwfCpQzV+BFxkolF15g0KpQbSWWpsunJfLBF1vWxwAIl6ZPzTQR8JZsrg98zMRBSENeACtU03g1dFt9n7aDX+KRxp8AHVSR7PmSjLim52+ZKTTW7gIpCkZAR0IE0Ax3Ij3yHpepkzbh++.YcPrOaLuiuPiJ+mqjVF2tYlVa62tFp8krIlvlu7FKTPh7wQ8HRkgQ2N8z7.YO6etXllR94oa997HDVyiyQUPX9R9PdviRVypzrtHGEuexT.V94+TshhOAZEBhiEszam1h.MyI9yEyzzOpZEg1G9EmdA1Ydhq4d3PrlJv1oE6nJeBot0clJVjhI8lLiTSltXJcRt5j6otCQWQfw2eq.ZaLaXUuYi6j..rEQRG9N3EDJepZVblZVLrlXNvOLES.SkZtL6xElXCNiis9lhyxGlh3mng2KmXxzxoHreVdRh6hmLUqYIzoFHDE+BReyMEhvEjTjecZHYgJJ3oPeTYL3GURRzZ2KGhDXwD7kTdQgYL1FBcdFpB0PSWBbimodujtQaSwMqwEwKIiClCxDDILEbCb0lkaxwz2KjyNYkh3xoD3mgQuzQUdBzqmlEbjg6xGUIt2ESKkBaz2wkIJKUTL.VnRJhXeWsvn+mnV3MAXhLv7LUMD6ppSOejFPxPMfjsHg3SFHr8W+1PObOWFKpJ5zyV2irWWzZ30sO9Vz+0h2DZYskkUxvVj74MZQejteNVEkv1.QRRDRFuY.snwwiqaR5e7HOosmXzbyjuCIBly1M0Z7zl0R8nJlSfOaJQ9KHyiVkRGUMZ5m7cvTBoBolSwOHXIWiHQDyJDXJJwODt6BDIUCKzXbZanuwhDWEGWikSvEU+YDgQE8KKg4SSMBDmarAq.UHEDK7FKT2m7zyPkpW7nD+HiF113ynn+3Y5Lp.zGVGpQfEJ2YqDVXyl9djvANOEI1B46DEx0dYXEHaZD1oJbh2gXDXRIEIg3LoFmf49M1.+6ESzgM60vPE4zkROeFZit+z37SRGelpg20ui5oo6BwmGkqlUxtuCM.ftuSj7aZxuYtXs4NNkrqtLiCpZO1wYukab16wNNEWtwo3G93Lu4h3CWqnKVw21vyKJarkD7tulcMZ6oZSDjvH6RMgfDoAGXFQjWXs6eb2B+f6ONGWC8TicW+M1NMdazjX7b30VLRPR2TSHpebHokKxenEik0E4uO3rWpIzHdbvoA1uoEilz2KZJlZB8lEglkGQCMrrbtAqdHMw3RsTlUfCCxyY.4KxvmNKxtQpLoPQ3gTIIwLROJHxw6N7JTKdZAQp.bb1L3.AgTYlCHF7zCBtoEWuHS5Thalc84kOhCEfpIw0nw3JbIlk2WS5Riz862vy+CxeyvSF8LlEuHbzEtpEtTxYLMmyRhT1cdRRPyjjDe2qDB1dQ7QVRdVVI4SnBJjHERkt3icBsb4fmmhc+2oucUXChrA5SizeC5NlPdLZw9hD9pXMSDyfs.eCnXhUuq.kSr5TYkZ5bJlBGzd3loGAL1S6IEyN6GDgA3dImnSJH0TG1xZLCYwOcC4L6oBQKdggbRYujmHE769FtRN.4Dqd2wiubL7YcIDkIgLWeV5d9HeLjnGT1pKYzvKG9nm34xhITpoOcNJLmLLN7KUINnWbYKJ5.15LgSkrEPOt0D24j74eZqryxCcGNzNx4SYG476zNB4T5muYjz2oYjEQUK7.jCFsESPoW.A81oHn2dmDTl6vvXlmdJJycQQYlfhXtXv0gN9FJ1IIHHwOj.LcQllysrfd1xvctEieWucuqFljdJrrzOthwV4ym7kjN9heIoYeGtaRYPLUDOYE5qz0vdQuY2wB3pwhsxWDfJzv6Sdcp+cAuN0QSoiA0isxWEm4YBIFA53Wd5+5JwhgWII1y9udV7rho44u7nqywq5a0WlWpfrBuZ+Cyy22wsur4tGWTg2O2d44UOUCk1WZKE91CJiRebmaj6uYtRJ7keyf77k6XLTl2cyJJ7us9v77ib2dnbeuRnzibykmucwRij6O5xiT36jaOI9hBVij2endMT4EqKwef0kBx8GXdhBe19GKwq6lEUd5AUUL42rhD+9mWAUd95nx61osDes7Bhx6eYZck8K+lcJX50XXF4h4UtRY+JkaVnu6AkxJW28DGkQmw0ofpUK6rxGWZ6qU5OpkeA9102NmrssrmhsQuzETOH+04j253S6ob4HQtB1iNbm7xx61quxgk1cGNdug54kqT6pAJW5zqLm44CykWN8IGMRw7MUpw0WVotDr7kWInzs+NmxwmMWSI3QWmUPw+f9nzMrMjjKqwInLP3fy35qZcoD7LWOQkK22PiKyUM8jf84FHpXsqrFm8MkbQk2ounh3o7nxGz9ZI4ix1UTonPi2xcVmycjjGU3RQEa2cdKm8kCsjjyT3XT6aT5bt9U7gRxUpVVTY6dcNia+NYMkfRRYDTJXk6Dt8eyguUBtSZDd4EN3DNdcySkjUt5sBJMR25Xtypz7XIXU0pH7lVrNm5YiNRB50kajxkGXTiKi8ApRxmO3PAk8qk8HtyL5kKOrlakQJcKebUt8OL+NRvcKUBkt+kJbps6HkGVw2cnxA816PNjlkPdYeQoAJ6mYzAb10zbxC0S2bfR+iKVhKS0CZmGd0gGgJ+Zt8Q0W2HuLcZ.Q2+yn59+lIz8I58+cwIV7C03i9hOD6ALwI8eahyeahyunl3r759YtCce0VBk4N6vVHrWsj4HkBuoXct9JCNVRVzQEwKNsTUNUqQ4yK6AsGpjuLuJ29WcbEjrXGT46qr8IbpCapKI2cmcP75cGVma+baVRBN7xNiPklsJ2YbNmHA8GUTTIuu0obl6cIRWoUuMQ7lA0P7V8RmJAg00ETJepPcN9aDqJA6dplfhqfzwb7s6TSR9lpEFoTV6zi4rgZmKIeVssDTpdLrFmsnklD7vS1STo74H7vqb1gRP6BuAU99pmxclq4gHcgcuFMdEPxR9NPT+co5dBJucTVT6GrYYIXO+9HYqXODdGnpHIevgXY61bpb74b7Pz+YVCTNQLWEt9cFdfD7.jbSIyoZpbmooNJOrSt7CTrNIaINd6Q8xCKj6MiTZebspb7E2UVRdaNwgJCxZWgKyw62IubsKGbihU8C1m6LKOjrezVWNPws4tGvolYzf7x417ngJlCyThyLeZMzbwhE5qT.obfveNk7vAl6dihak9xb629sGlGteFi9JGbsLp7tVUxCOogaekKMMQykqbIed4rVW2WQTsPQt96YLJmb8sy3prcgqGTfuzk54j6VSyGkVYyBpoycUNYs8x6oj47qGVP0c2cyIei1tHaEWMHSA9706kSNyg65qT1oxnBlU56lSVLikmR8ruwt.+9Vi1TtBJNAkxv7cJXltP+rx5bCcUT2YTNDMnZmSlmyAYKJidiB7cMs2T1qqoihpWgKKzuQ5cxJO7sGXqn1b3YELGl9pLyQ2+qBz8IQ7PT6+h3znelcQCpV++zyhmoPNd5EwBMe3kDeCspQoMk3UG5GktuD0B935WfubkyiRueA9F9FQoUKPsvGl9rB7CbSGk1r.u5aTEFm9xBzU.BSi3htksiR6Vf2V9znz8KPWgHL8HT+64FkFIkJdIy3ku.cEjw3miurxUQoQZM15GHNN81bzUXBSuKRKdSuzQzKmYe25YFm9.N5JPgoQqPvyUaywoQV7F0eTTZUN5JTgoQyR145iiRirJ.kLhRirxPVAaL+jS83h2Dk9sH7tW1nzM3nqvElVmi+frpQoM4LKHoGjdw9iPeDeI5VqFO3488t7H49bmI8iowYlSiQqni0risxJAQVfh1nqgqODGHyJaazG1zf90ZZ03aa3ckuSWRcCBnCMkYx4Rjf6Ii4mGuQqXCXGrgrIHewJFmwO8e9Z5qHNaNPeiNgersV8Wgx683BhxMMa1q76X.0udQf52DmMhUF388CdcD79oad8jvKFbZ3gxA+Yhx1mYTIT7rvK1jnlM2vCqDm26eOgNh4aLve1biMK0sTw6wH.JwPg+36lhB+K8llB+QsWS2Kgs53zylgx+wWGM.jmMHrmAOaFZ78APeJFRHAMetGKY9k2qq8QD2OdDCwEayW2Qigv+tokl+wYjlkdMlsi+3igOgTxCqZrkR990e8WOOI46mUlmISlYjjI9.B.YARxu2aZpSeFI4QKTR9DKx90e.NUxPO1OYzybzLW4oWyb0IMuTVqQf4kuHN49ENs6uzMPO6qiy7Ek4UuB.iceDMRK1DYgtFbzDePBe7fM8hjDiA6+3zfEvAD+3A3D2q2YKf6Fa38ZT6mZLqJer6PWfcZcvBMKg9wWsDNAr.ZP3+Hfo+kwIu2RTpeJd84ygWaXiqI9S4XYCMWa7WLQnWEG72uAMWT+uxyVJ6Y+0+56my5UyicLuUlRrn0c+6iOwt9yP8+kQrRv+3qa33hlAWUSG1yKJ+mOkj86+9Yjr+oWqgOwyvsS1COnaYYAhxXJZB7qd+xINWHU8OGeAmkwhnue75kj9d8LzGRn+wh99x60oyHx4mrdZVn82PWnM3AE+SwZse485c7B7FbZp7KVdp7qnTI8cG6SAQdeF62j0mo+7j1NoP92FO78yA6DzZf621ylywNexmfElxxNK5GYcO+1wrW5qR.cs9o.5gKEP+lm.flaQ.8+9GF6VYx.M80dXv7ofelmAlfaYk8+aimTF7sQANOFZ8OYHUh0fCKRe8+d.R+h3Ica0P6olax7MJ9yoQ89aiWwQumkl+jexjweXoCJ.hVZm86TL9qNrsGzeH6Gd5mruixKKD+53pP+lsmOFe1bvHJB5OFXL3qO8WEeGSSil9Q.7yiu6Yeb9TSGi9vm1pBIReTH.3ubzHalMMPitMZ8Zuv.VCRKfSi4.0Lr0IIvFbCJTLLFBbghgEFqiVSWm+TS5Vuf+9V+EjbPXxl7s.e03UvoAyY2d5f7Q6O0r4jc0LML8CsgYdnMbyGZCy9PaXtGZCy+Panz82PrKza0y2oCcZSrXUT2grGYqrxNDerIZqw9e..AlTtD
So far it works well, but currently it only does 1 plane row scanning with linear interpolation, the column scanning is implemented but I've haven't tested it yet cuz I found I need to prepare a new data array for testing this. The 3D plane scanning algorithm is there but the function itself is currently to be implemented.
I'm feeling like this might not only useful for scaling spectrum magnitude and phase but maybe also for something like partial envelopes, modulation tables and even maybe something like morphing between a sequence of presets of a synth.
I'll keep polishing this patch and would like to hear your opinions on this idea :) -
RE: A pixel drawing program, in HISE, [SNIPPET]
Thank you for this cool snippet!
I'll try if i could make a conway's life game on this!
-
RE: Creating an array from an image
@Orvillain
Thank you!@griffinboy said in Creating an array from an image:
I would like to create something where the user can load images
I wrote a javascript code that does this. I've tried to embed that in to this project though webview but I found out I can't send the array back to onInit.
https://docs.juce.com/master/classImage_1_1BitmapData.html
I just found the BitmapData in JUCE and seems like it does exactly what I want.
Not sure if i can do this but I'm tying to bring it into HISE now. -
RE: Default Oversampling Filter
Well, I guess I didn't read the header file carefully...
Seems like the FIR one is disabled in the header file by default.Make sure enable the filterHalfBandFIREquiripple in the header file before compiling Hise if you decide to use oversampling in linear phase plugins.
-
Default Oversampling Filter
I noticed there are two oversampling methods in JUCE source code (FIR & IIR).
What method is defaulty used Hise? And how to switch from one to another one?
-
RE: Loris toolbox crashing
@d-healey
It's a comment inside a for loophttps://github.com/christophhart/loris-tools/blob/main/Loris Toolbox/Scripts/Config.js#L49
I found it's also working when that line is enabled,or with a return 0 inside it.
Latest posts made by Allen
-
RE: Serum 2 - Spectral Sampler
I have an unfinished prototype does "spectral granular" with warp functions. Been considering including that in my synth for a long time though. I'll try if i can find a way to implement that in hise.
-
RE: More Positive Posts?
Just finished the UI of the first effect pedal in my synth today.
I'm not good at 3d graphic design, it's way much harder then i thought but i just tried my best.
still got another 19 pedals to go...anyway hope i won't stuck in these ui things for too long -
[Feature Request] Get rgba values from pixels
I think we need a function that get the rbga values from pixels of an image.
I've tried to do this in Javascript though webview but i couldn't find a way to send the data back into HISE.
Also I found there's a juce class called bitmapData that has some functions probably does this and I tried to bring these into HISE myself but after getting bunch of errors over about 20 times i found out maybe I can't do this properly with my c++ skills and my current understanding to the source code of HISE.
-
RE: A pixel drawing program, in HISE, [SNIPPET]
@rglides Yeah, this thing is actually older than me, I knew it from Aphex Twin's Windowclicker EP
-
RE: A pixel drawing program, in HISE, [SNIPPET]
@rglides said in A pixel drawing program, in HISE, [SNIPPET]:
Metasynth
you mean the one by u&i soft?
finally we could have a windows version lol -
RE: A pixel drawing program, in HISE, [SNIPPET]
Thank you for this cool snippet!
I'll try if i could make a conway's life game on this!
-
RE: Creating an array from an image
@Orvillain
Thank you!@griffinboy said in Creating an array from an image:
I would like to create something where the user can load images
I wrote a javascript code that does this. I've tried to embed that in to this project though webview but I found out I can't send the array back to onInit.
https://docs.juce.com/master/classImage_1_1BitmapData.html
I just found the BitmapData in JUCE and seems like it does exactly what I want.
Not sure if i can do this but I'm tying to bring it into HISE now. -
RE: Creating an array from an image
@griffinboy
I found a weird way to do this, actually we could turn the image file into a big array externally (by using a c++ or a python script or something else) and store it into an single channel audio file. And then we could simply do something vary similar to a 2d wavetable, just read the rows/columns as cycles and interpolate between the cycles next to each other. If there's more than 1 plane we could store the data of rgba planes in the same array in order like this [a r g b], and then read them separately by transpose the index. This will also give us a Z axis so we could interpolate it with both data from rows and columns to get new values.The whole structure will be like this:
I wrote this simple demonstration patch today
HiseSnippet 5828.3oc6bsuchijdG2yvlwryrYm8jjyI+Wc58blfagkk.CHld6IsQ9FtAKY.eq6i2cDHInrERXIAFX8jLIuQ4MXdT1Gg7DrcpKRnha1z1t6LYxpdFrp6+9tTe02WURR00oogmmiarURTeXWiXq7kwqMz1usbaMncrRaiynTGsVFa45pMLVwgc077LzisxJe1d3ZrxpedLx0+8+ZQMKM6lFQYEK1INvlFkgcf9Q4p952.sr1US2nNrCSs270kZ5XK6X4zCglOKtPrtZMuBMxGpgq1yhGaeMu1wV4EwapIjyrYiBlBFoyap2HeCiMyZTP2nPNolYMkxJkIsQFobwV4WsiNz2wslulugWrU97hN5Cq014Fa5.bBzC1vx.mPLVMzHSydWGKcLIhyMlbanktZHaxKFpWTiXZeFko8ODuBTGNN+Hl2ukT.HpErLvUd1jv6yl.dhrvSfAdyARqv.o3TH80wq0zE10OpDLd90wKY6a3ZpgjSrP4vdcpYA0MbUQ7bDThuxmgDIzdH1yF8GhK6fZmsOeGsqL10EkXb+jLmfPJ.5m0dYhDI1Xi0uiqttFc0bM.djwBKe8.eCvDZYf+quFhZ8tq1i6eKGMcbKRrK5mZC87M5viyamAZc5ZYrEhj78Rh.CRaxyGzWyErUOcnCt5fWA1wtEz1fzhwY6gHFGUGGqjq8NgKXaoYcmpFZ5n1wLZltNcpZXZ3ZfT2q46BsakbbekhslQivX7znmIpknNLnqoHwabMSRYiuHw5+R4JA3C5JAa8SuMnxV0qV5LPRMfGhQijgtsZ.bbAZVcaqA5hr4X.bLAZ1.H1N0ZKpeE2FrU0pacNpmrAZX1MQwasDef36maWKF9MG1zxnrgcK+1exPiKd1hqyMdIGr129nPO451Os7x2sEnHPFrMXGvt777W.RAd2df8Ak.G.dCnLNqT.zu2O5eUz0+qqHb6RyPIZLkr0MF7sOVz76+8TcAMKKfGwxrG.ZCbPyVIixbgaRA7zWFg.J05q+c.YbKDlo5r4HxZ0f49LL2u4cBWcMeMfEc5BRpkVGzQCYbe.3FnNMqolPMWJPDSAL5LrTfXjpw28cX0sIHU1FcHnBPAnBNBTETCTGbL3Dvofy.7i+2ES1UODkijowXkcnXvZ5YUi98QW2tDpW2trJsQZc3wecPxLXbwR1L3JybUuQVbPqbubX416w5USGqdcr8RNbrAr4x71DCRdl+w.xMW54fO.PhLRsGRpUKz.UQjdSEP8wFmlGZ4C9kEs3LhLkM4rAlku+ft+CSAbdC9Xd3gKmcFpzhH7eHlmNDMUlw7jgVy1T8QukEvKw0e7wab+trO01.1psONuNZCXlMst3SnqM29wbEpG.bdp7ONjz9+JtG+o0aoeVCtORnaQAJ7fgVFTPLZCHSUS1Vqug8+hOJVEjImNnHpMzuuNt+GK2zaX3eiggMMFJujiV6a+YdnPXi0z.9P15dm.WRj0Pg0EW6EcsfOgpDA1XwAUN1JaSz5CO4WhSPAKD5NAVJbt+dzDEXL1EapHEP5909XHJROEzcS0JUiTZgC753kwAfMn4C1XYl7e6LlFeDlLtCOiyrLb8Hd9s2eOh7i2ETzEH6B11k5T0Vs.EaAjaA1tUPFM.Ea.ja.1tQPFZfhZ.YMv1ZjLVFGXlvesKRrHSYznJtcoL4d68myclwhbgbtlCQylB8xinebaPnO2hzTl4h5VFxqLjqLIgqMY3d.XjTTbpzomtBYlLYj0BFGAYbBTGZR1bOefmQSenisG1VfeaCJcLG6Ae.yP+XdIhB2FuM8fjP.G1Ll.3EnYjv0RAzr0QjlugaWGKMeiGrsRp4WhLAjD20eKvn02BzdkPJf6qDSAZ8pzo.MdUlW9XIlafHavXldSGWWCutN15P6Vj8VZifPzl6VF9f8O3iYs+YzERMswPvVVH0iOLB9WL6G8K1fbPEQGBANxJlM8O5jP1FUvVQGZPSjkBeisr0qZzB5glLMYMSJLwoNLYgEW9tQ7N5lJZP6ktiRi5HDcZ3WUytkQhonK9vBRJvmBHh9eAdA7XOEvWx5gQ1Bq5FaXAsuB36.VHuVDwfBOkoVF9xNcPS4QIR9bl577EvZRuDMN8hZblknwYd9DDrHuK9.fp6P3yyxHlnxouiJu0D0LycTyh3CFZiMHGRFCYTGmdw7NZwOmHBZzy22wl3iHxfpgO8.2R.sQxFCfYOaxhcH+GKRpnHtGccrR1Lr6RgFQqdFqk3OmXUZGyS5H7YVsZhUQcbR3qDdI7OvrQoT.WqolkwtZM8cbWW7kPNt0PcQXenoqStS0AsBERyQfn1f6ye3kIP+27or.P970vJcAPUVyxpAhekbZZfbnZ2ygSFcExJ7VVKJj9NbuQC1eaZTDafVuJ7V5pV.6dcZX35wHCY2W4WAxJl9kS0izlf8Bg5eMSaIYbXuNnFJNcyzctw1Cy4AlDVOQzOsBzzxGbGka5dJvWr.b32Vym50TWTJKGmtL8GtpH7nhrF0DE.8bfUKrpWaiYopo0DQUTMf7RZlJjRwpNIV0xAAYPWJkaxGvhCqCQez0vumqMoN3z+v8iC5N+gkYd3iXLrBABN5XLOTR2vRBJYjkyEwHsWUZHrKh7dYTkaRIuJZ9s4MQ7Y2jgMeClwYMVps4hn1wmL2Fzc4lPpfYnFbgUQ0ZqonknsUjdKZXREHpoj2Fu.+qH4JwpBjqnMVibbGzBAAkQ+yEfvJiaNZo4wDuFhxe2EXZA2MZ7nAUykg4zfkQQO9f.VUGncx4fWVNqmulqOwfCpQzV+BFxkolF15g0KpQbSWWpsunJfLBF1vWxwAIl6ZPzTQR8JZsrg98zMRBSENeACtU03g1dFt9n7aDX+KRxp8AHVSR7PmSjLim52+ZKTTW7gIpCkZAR0IE0Ax3Ij3yHpepkzbh++.YcPrOaLuiuPiJ+mqjVF2tYlVa62tFp8krIlvlu7FKTPh7wQ8HRkgQ2N8z7.YO6etXllR94oa997HDVyiyQUPX9R9PdviRVypzrtHGEuexT.V94+TshhOAZEBhiEszam1h.MyI9yEyzzOpZEg1G9EmdA1Ydhq4d3PrlJv1oE6nJeBot0clJVjhI8lLiTSltXJcRt5j6otCQWQfw2eq.ZaLaXUuYi6j..rEQRG9N3EDJepZVblZVLrlXNvOLES.SkZtL6xElXCNiis9lhyxGlh3mng2KmXxzxoHreVdRh6hmLUqYIzoFHDE+BReyMEhvEjTjecZHYgJJ3oPeTYL3GURRzZ2KGhDXwD7kTdQgYL1FBcdFpB0PSWBbimodujtQaSwMqwEwKIiClCxDDILEbCb0lkaxwz2KjyNYkh3xoD3mgQuzQUdBzqmlEbjg6xGUIt2ESKkBaz2wkIJKUTL.VnRJhXeWsvn+mnV3MAXhLv7LUMD6ppSOejFPxPMfjsHg3SFHr8W+1PObOWFKpJ5zyV2irWWzZ30sO9Vz+0h2DZYskkUxvVj74MZQejteNVEkv1.QRRDRFuY.snwwiqaR5e7HOosmXzbyjuCIBly1M0Z7zl0R8nJlSfOaJQ9KHyiVkRGUMZ5m7cvTBoBolSwOHXIWiHQDyJDXJJwODt6BDIUCKzXbZanuwhDWEGWikSvEU+YDgQE8KKg4SSMBDmarAq.UHEDK7FKT2m7zyPkpW7nD+HiF113ynn+3Y5Lp.zGVGpQfEJ2YqDVXyl9djvANOEI1B46DEx0dYXEHaZD1oJbh2gXDXRIEIg3LoFmf49M1.+6ESzgM60vPE4zkROeFZit+z37SRGelpg20ui5oo6BwmGkqlUxtuCM.ftuSj7aZxuYtXs4NNkrqtLiCpZO1wYukab16wNNEWtwo3G93Lu4h3CWqnKVw21vyKJarkD7tulcMZ6oZSDjvH6RMgfDoAGXFQjWXs6eb2B+f6ONGWC8TicW+M1NMdazjX7b30VLRPR2TSHpebHokKxenEik0E4uO3rWpIzHdbvoA1uoEilz2KZJlZB8lEglkGQCMrrbtAqdHMw3RsTlUfCCxyY.4KxvmNKxtQpLoPQ3gTIIwLROJHxw6N7JTKdZAQp.bb1L3.AgTYlCHF7zCBtoEWuHS5Thalc84kOhCEfpIw0nw3JbIlk2WS5Riz862vy+CxeyvSF8LlEuHbzEtpEtTxYLMmyRhT1cdRRPyjjDe2qDB1dQ7QVRdVVI4SnBJjHERkt3icBsb4fmmhc+2oucUXChrA5SizeC5NlPdLZw9hD9pXMSDyfs.eCnXhUuq.kSr5TYkZ5bJlBGzd3loGAL1S6IEyN6GDgA3dImnSJH0TG1xZLCYwOcC4L6oBQKdggbRYujmHE769FtRN.4Dqd2wiubL7YcIDkIgLWeV5d9HeLjnGT1pKYzvKG9nm34xhITpoOcNJLmLLN7KUINnWbYKJ5.15LgSkrEPOt0D24j74eZqryxCcGNzNx4SYG476zNB4T5muYjz2oYjEQUK7.jCFsESPoW.A81oHn2dmDTl6vvXlmdJJycQQYlfhXtXv0gN9FJ1IIHHwOj.LcQllysrfd1xvctEieWucuqFljdJrrzOthwV4ym7kjN9heIoYeGtaRYPLUDOYE5qz0vdQuY2wB3pwhsxWDfJzv6Sdcp+cAuN0QSoiA0isxWEm4YBIFA53Wd5+5JwhgWII1y9udV7rho44u7nqywq5a0WlWpfrBuZ+Cyy22wsur4tGWTg2O2d44UOUCk1WZKE91CJiRebmaj6uYtRJ7keyf77k6XLTl2cyJJ7us9v77ib2dnbeuRnzibykmucwRij6O5xiT36jaOI9hBVij2endMT4EqKwef0kBx8GXdhBe19GKwq6lEUd5AUUL42rhD+9mWAUd95nx61osDes7Bhx6eYZck8K+lcJX50XXF4h4UtRY+JkaVnu6AkxJW28DGkQmw0ofpUK6rxGWZ6qU5OpkeA9102NmrssrmhsQuzETOH+04j253S6ob4HQtB1iNbm7xx61quxgk1cGNdug54kqT6pAJW5zqLm44CykWN8IGMRw7MUpw0WVotDr7kWInzs+NmxwmMWSI3QWmUPw+f9nzMrMjjKqwInLP3fy35qZcoD7LWOQkK22PiKyUM8jf84FHpXsqrFm8MkbQk2ounh3o7nxGz9ZI4ix1UTonPi2xcVmycjjGU3RQEa2cdKm8kCsjjyT3XT6aT5bt9U7gRxUpVVTY6dcNia+NYMkfRRYDTJXk6Dt8eyguUBtSZDd4EN3DNdcySkjUt5sBJMR25Xtypz7XIXU0pH7lVrNm5YiNRB50kajxkGXTiKi8ApRxmO3PAk8qk8HtyL5kKOrlakQJcKebUt8OL+NRvcKUBkt+kJbps6HkGVw2cnxA816PNjlkPdYeQoAJ6mYzAb10zbxC0S2bfR+iKVhKS0CZmGd0gGgJ+Zt8Q0W2HuLcZ.Q2+yn59+lIz8I58+cwIV7C03i9hOD6ALwI8eahyeahyunl3r759YtCce0VBk4N6vVHrWsj4HkBuoXct9JCNVRVzQEwKNsTUNUqQ4yK6AsGpjuLuJ29WcbEjrXGT46qr8IbpCapKI2cmcP75cGVma+baVRBN7xNiPklsJ2YbNmHA8GUTTIuu0obl6cIRWoUuMQ7lA0P7V8RmJAg00ETJepPcN9aDqJA6dplfhqfzwb7s6TSR9lpEFoTV6zi4rgZmKIeVssDTpdLrFmsnklD7vS1STo74H7vqb1gRP6BuAU99pmxclq4gHcgcuFMdEPxR9NPT+co5dBJucTVT6GrYYIXO+9HYqXODdGnpHIevgXY61bpb74b7Pz+YVCTNQLWEt9cFdfD7.jbSIyoZpbmooNJOrSt7CTrNIaINd6Q8xCKj6MiTZebspb7E2UVRdaNwgJCxZWgKyw62IubsKGbihU8C1m6LKOjrezVWNPws4tGvolYzf7x417ngJlCyThyLeZMzbwhE5qT.obfveNk7vAl6dihak9xb629sGlGteFi9JGbsLp7tVUxCOogaekKMMQykqbIed4rVW2WQTsPQt96YLJmb8sy3prcgqGTfuzk54j6VSyGkVYyBpoycUNYs8x6oj47qGVP0c2cyIei1tHaEWMHSA9706kSNyg65qT1oxnBlU56lSVLikmR8ruwt.+9Vi1TtBJNAkxv7cJXltP+rx5bCcUT2YTNDMnZmSlmyAYKJidiB7cMs2T1qqoihpWgKKzuQ5cxJO7sGXqn1b3YELGl9pLyQ2+qBz8IQ7PT6+h3znelcQCpV++zyhmoPNd5EwBMe3kDeCspQoMk3UG5GktuD0B935WfubkyiRueA9F9FQoUKPsvGl9rB7CbSGk1r.u5aTEFm9xBzU.BSi3htksiR6Vf2V9znz8KPWgHL8HT+64FkFIkJdIy3ku.cEjw3miurxUQoQZM15GHNN81bzUXBSuKRKdSuzQzKmYe25YFm9.N5JPgoQqPvyUaywoQV7F0eTTZUN5JTgoQyR145iiRirJ.kLhRirxPVAaL+jS83h2Dk9sH7tW1nzM3nqvElVmi+frpQoM4LKHoGjdw9iPeDeI5VqFO3488t7H49bmI8iowYlSiQqni0risxJAQVfh1nqgqODGHyJaazG1zf90ZZ03aa3ckuSWRcCBnCMkYx4Rjf6Ii4mGuQqXCXGrgrIHewJFmwO8e9Z5qHNaNPeiNgersV8Wgx683BhxMMa1q76X.0udQf52DmMhUF388CdcD79oad8jvKFbZ3gxA+Yhx1mYTIT7rvK1jnlM2vCqDm26eOgNh4aLve1biMK0sTw6wH.JwPg+36lhB+K8llB+QsWS2Kgs53zylgx+wWGM.jmMHrmAOaFZ78APeJFRHAMetGKY9k2qq8QD2OdDCwEayW2Qigv+tokl+wYjlkdMlsi+3igOgTxCqZrkR990e8WOOI46mUlmISlYjjI9.B.YARxu2aZpSeFI4QKTR9DKx90e.NUxPO1OYzybzLW4oWyb0IMuTVqQf4kuHN49ENs6uzMPO6qiy7Ek4UuB.iceDMRK1DYgtFbzDePBe7fM8hjDiA6+3zfEvAD+3A3D2q2YKf6Fa38ZT6mZLqJer6PWfcZcvBMKg9wWsDNAr.ZP3+Hfo+kwIu2RTpeJd84ygWaXiqI9S4XYCMWa7WLQnWEG72uAMWT+uxyVJ6Y+0+56my5UyicLuUlRrn0c+6iOwt9yP8+kQrRv+3qa33hlAWUSG1yKJ+mOkj86+9Yjr+oWqgOwyvsS1COnaYYAhxXJZB7qd+xINWHU8OGeAmkwhnue75kj9d8LzGRn+wh99x60oyHx4mrdZVn82PWnM3AE+SwZse485c7B7FbZp7KVdp7qnTI8cG6SAQdeF62j0mo+7j1NoP92FO78yA6DzZf621ylywNexmfElxxNK5GYcO+1wrW5qR.cs9o.5gKEP+lm.flaQ.8+9GF6VYx.M80dXv7ofelmAlfaYk8+aimTF7sQANOFZ8OYHUh0fCKRe8+d.R+h3Ica0P6olax7MJ9yoQ89aiWwQumkl+jexjweXoCJ.hVZm86TL9qNrsGzeH6Gd5mruixKKD+53pP+lsmOFe1bvHJB5OFXL3qO8WEeGSSil9Q.7yiu6Yeb9TSGi9vm1pBIReTH.3ubzHalMMPitMZ8Zuv.VCRKfSi4.0Lr0IIvFbCJTLLFBbghgEFqiVSWm+TS5Vuf+9V+EjbPXxl7s.e03UvoAyY2d5f7Q6O0r4jc0LML8CsgYdnMbyGZCy9PaXtGZCy+Panz82PrKza0y2oCcZSrXUT2grGYqrxNDerIZqw9e..AlTtD
So far it works well, but currently it only does 1 plane row scanning with linear interpolation, the column scanning is implemented but I've haven't tested it yet cuz I found I need to prepare a new data array for testing this. The 3D plane scanning algorithm is there but the function itself is currently to be implemented.
I'm feeling like this might not only useful for scaling spectrum magnitude and phase but maybe also for something like partial envelopes, modulation tables and even maybe something like morphing between a sequence of presets of a synth.
I'll keep polishing this patch and would like to hear your opinions on this idea :) -
Creating an array from an image
I'm currently trying to get the alpha values of pixels from an image, store these values into an array and use that to scale spectrums (something similar to the jitter buffer in maxmsp), but i couldn't find any functions about getting values from pixels in Hise.
Has anyone tried this before?