Need help figuring filters out
-
You've asked a lot of things that don't have quick answers!
C++ dsp:
You can find c++ dsp on github and other code sharing sites. But it won't be "easy" to import into Hise, you will have to write c++ code in order to integrate the filter into hise, there is a process to learn here.
Alternatively you can hire someone to create / integrate a filter for you.
But first, see if the inbuilt filters can do what you want. You might not need a custom filter, just be aware that you might not be able to get the sound you want from the Hise filters. It's a possibility.Metering:
A good free FFT metering VST is "voxengo span".
There is a free version which is very popular with producers. It will allow you to see the frequency response of sounds in your daw. This is useful for studying the shape of the filter that you like.
A paid meter that I recommend is Minimeters, it's cheap and can run systemwide, meaning it listens to your computer audio, so you can meter Hise and any other app you run. Very useful for studying waveform shape / frequency response. It's not the most precice but it's great for just "eyeballing" it.Resonance:
Resonance is to do with the shape of a filter around the cutoff frequency. Most digital filters will have a control for this. I know that the hise filters do! Any change to the shape of a filter response is very dramatic. Even subtle changes to shape can easily be heard and do matter. Another name for resonance is Filter "Q".

-
@griffinboy turnin resonance up didnt work uhh i can try code it in myself (the filter dsp) but also i was able to make it sund like that on another vst I made so idk why this new one cant do it
-
@David-Healey Please help me
-
@duma Not my area
-
Analyse the filter properly.
See what the filter response is like. The shape of the filter.You can only try to match the filter after you first know why your target sounds the way that it does. You can generally see these things when using metering.
Recreating filters can get really complicated.
So that's why i'm recommending studying the frequency response of the filter you are trying to copy, and then trying to match that response with your own filters. In other words, eyeballing it. This becomes easy if you have the "minimeters" metering software.If you can't create a close enough match that way, it gets much more involved.
You'll either want to find out what type of filter model was used in the plugin (the fastest way would be to contact the programmer and find out) otherwise, it's deep analysis time, you'll want to write Python or Matlab scripts that can fft signals and give you real accurate data on the frequency response and then you can work on matching it perfectly. It's a bunch of work but deriving a linear filter using scientific analysis tools is the most accurate way. There are lots of research papers you can read about this. If you want to go down this route I can give you some information but beware it can take a long time to derive a filter this way if you haven't done it before. -
@griffinboy Yes please give me the information, once I read up on all and find the filter do I put it into hise and use it
-
I'm assuming that you have already tried to match the built in Filters with your Target. Properly using analysis and metering. You should at this point already know what your target filter frequency response looks like at a glance.
Example: Lowpass filter on a saw wave. Using Minimeters, we can clearly see the shape of the filter. And we can try and match this shape in Hise. We can see a little resonance and a "not very steep" cutoff. That gives us immediate clues for matching it.

Assuming you've already done this, I would next recommend learning to port 3rd party c++ filters to Hise. You need to learn first how to create c++ custom nodes. There are some forum posts and videos about creating c++ nodes. Search the forum.
After learning this, you will be able to create / import c++ dsp into Hise. You can now search for open source filters on github, there are many good examples of analog and digital filters to be found there. You then need to download the source and work on building a c++ node which can run that dsp. You need to know c++ to do this.
After you've done that you can see if any of the filters you found suit your goal.Now then, assuming you've looked at the frequency response of your target filter in the daw using metering, and you haven't been able to match that shape in Hise with any of the default filters or with any 3rd party filters, and you're dead set on creating a filter with the exact target frequency response, then here is some literature I'd look into:
-
Nevermind i think the problem is the update, because I made a vst on my old version where i used the EXACT same code and evrything worked js like the video but now it stopped?? nope its the update for sure because the filter isnt even moving to what i put it at on the xy pad so i know that its the update
-
@griffinboy Hello?
-
That's not enough actionable info.
The forum can only give advice about specific problems, not debug an entire project!I've confirmed that the filters work in the latest Hise build, so it means that there is something else wrong with your code. If you can narrow it down a little we can help.
For example, when you manaually move the hise filter cutoff does it move? If so, then it's probably your hise script that connects the filter to the XY pad which contrains the bug / broken code.Debugging is a process of elimination.
-
@griffinboy so the filters on hise do make the sound pulsey on your side?
-
@griffinboy can I send u a snippet and u check it out?
-
@duma
Snippets are always welcome -
This post is deleted! -
HiseSnippet 6757.3oc6c07bajbcGPRijHzpOV4Mdc9vUFyX6.5UhBy.PPRqrV.f.Tjq.HvB.RsJJxZGBz.XVNXlYmY.IgVKWqsK6xopTUxw3pbk3+BRsWyEGcLmR1pxobSGyw8PpbJUk75tmYPOeANDjRKWWlkJRze+5euW+5260MZ0vPqCxzTyHQxTsGqiRj7M3ZMV0ZvZCjjUSrY4DIuI2NsZyWqXq1UZxu1FE2bqDkFqKYZh5lHYxyeeb8RN2ERP94KtWIIEI0NnIYkHwNZxcPUkGJaMI2FEdfrhx5RcQskGxT6bE1ril5ZZJZi.Z57bYRnK0YOo9nsjvU6bbI1PxbPhjeONQotqjq6RBcDxjSpS17KIt6R8D5gjxIlQL6xhB8xg5zUPJQxKVoqrklQKKIKjYhjWnjV2wsFncfJc.1Q1TdWEDNgPhVvHSydcMkt3oHN2DqMPVoaCGvxLQhjbMl.cmmBcuEWM4txt4OABuAo.9IsfE.SdNuj248PdBrjWFFxKDRJICIcAJI8lbs5XHqaMoDL8bEtMUsPF8j.9DKoPqahy8quF2ZZPMTsVbnzdn0MfDtsH8JYxbK97KkYg6lJEvqLs32Wxfeqsq8z1EK0h+c4EuKS95RpHESH2G+D1rqAxQPlNCSej0ZZC00TgDomGW37KvV8hk2o3VqUobjMwoB3l474EMwUQ0xPSYMIEkcAAozcFHo1G0VZWnd8zL3SKCcYl6xKy+W3NEfTuy6rPpOI0bTh+wxOIxwsAtFy+NokeGgEft74oRIqpHqh36MRsikrlJu6HxmtiS6tELoTFgVfGFjToliG+iepgN1KpfT6aMvljn0DHL5GbIuEMA4E6oJtOdW69+tN074o792TFn97cFYX.DSCCD.T.y7N2geaSjAOMC9MjT6pfLr4BizG.zVE09vjawNFHPXEWYZcsqZZrHATQLv2PyzxE0c.iz5jputrBhfudn.n6mTLP4J6pPK.2com2Bcn072hoJKZo0xxPVsOSut3VZUNDXSlvfQ3GKPmWt8k8rwMcjLV2ZL+BoBmRlGKqQ58csTaIsOxdD7K.no5obG1T.gALfH2iOscJBixDZ1ZrfDFheNLrgSzdFn4WHrE.gSM1vz51zbPgXBC2gDvTJFsaM1zBMbwcMzNvDklIGfpHpOMXybh3h4B2h2xXDBvvu2hTlGfmtBI8fIOVF2uzQOr3rsDHFXlzgPSvkENep2DAE7G8IgL2yCeYa.jmOsKG5aIaVF0Cpd2zdnwE3+Q+H9ukmrVT1DCAoWvYN4AHwDsAxZjg5c4AJI0bobmevB5GgL2R6gxpc0NH87.ipmrwPrbWYM9wZi3OPR0h2RiWaejwAFxVHdqAHmE01qStGKtB4.BJlHaRAOSXxhHuEN55cRd2TDMITX6N2okzP8IpIvJqsyQ.XYDaIHBo3cqHoROuS4ySk5nI4GJoaxKYXHMloqLIkUCWz65zu3tqkS9UkMI3HzOv5fc032U6Pl1Sxqj1gBQtN2sFXpwMAU.Bvzgl.BNgJV7izjUSO+ek57frCepTgrX2sOlxBcrFXLH5fDKJYZ+wzKrnhlTW24W5Ii8iIs91BOYpp.XlOgu72O8MYabcUkOXbj.EoTu6J+.UscylIxVPKNjlHL8lH3sIUWudMstiTj.ij7HS4la54g5vOoRQ2dw3zdQphc7VjGh2OdwktKIwXmDoHXAYWNvDOqlZir.gfI6x0Gqo.yewCuDzJqAxl3QrpVGIkRZiT6ZlNi8BIxJlM+Kq.USHCMKxu5uXOvB4hJJocZMneuO0xXrzGaMILZbAL0EK75q1ztrhhhrNnu9wGx+83kdr3S3uMg.ti3sfoHNqrrYg+K82OwYCU2oeMsQlnf6xi1GXlNX.4WXcMjbWrihbm8PcwZJoYz0PBvKpcM71+DGbC+Cl8TSB3lFXarrGgC4uCYZcKfYAVpJrHaKFGVKFSZQ1vagGwO7jtnErYxtirPo8Vz5FnOdDRsy3awiQ1bYhraDitaDmZ231aDfw.oiE+RyLJteft1CON6f0Zjd7zlQtCYZ6l02oYKvzL5ZyIc4gSa14qKEB1kOmJKEhFTJQLU6jvrw.zJra5TlZtVDSkdY.Oh1zHHCgoRFG5PFBQSFhwkLlCue5z0jFtFcO3EYWrooZcJ8A6VBL.wVZVn5pTye.Zj2eQ85EZY1cFYSsPJF62uwzZXZ0QC2EYvh23JB9150gYtncXl0e9NTTgohZpapJaUWGoFkW9IrgRv45uoMUAU0h3Z80rcstzHKKM0DxfGzWjC64ZBB8xFSjDwnso3bba0e6sIivZeKEYvHaR6uLGUL3D0ZgYq0WhzZgiwDOPiEOIib1SRiy4uwO5EAZ7MrarisSjleENWSo72EeiBwgkOGGMwwA0YZ90473I2IACVc1n.NthMaDilFJ7cUbiucihsaWo4TWybAZmbSODeCPsEoadKb2rSkp0Way1OZs5a0tY8pAIotRVR30X4VD9o26rXrvluFtqquV6h6Twtimw0GuItiZWoFzYQQfwld1Z6ZsZWowIpiliq4NkJWrViYq4WE27l0qWCaT3r0EovcwC2rb6MlU8UP6qs4GLqSfGB7z0q2r1C1pzrJ+NY4e.cWe2BwCCJWoZwGMyyB5R2kNIMN+IowKeRZ7Jgz3s2rLdYZhjIs21E1JVGYXIi2kOYYz9xcPzvZOGWYj4dVZ5f1AWSbft9n1Y9P2w6C9IEFyN3CPx8Gvb9DEJbfbWqASx3CKXH0UV69FZiz8omJFiOyt6SngF+7iGM7oOIFzPJJMbUm.+iCQr8RFxmEXH.3GFB3G3eJ+WWvGE8g+rBNdfhOnnbhqla0LBKmOShINa5q.bL3NhVH5qjj2fY5Lm2oylCk5iHSmuNWohq8f62r91aUl+gEqVsQwFUZxL4dw1uvC55cxU3u0+j6+5WVPWBGlKlQ2EyTzvNsRMSD7g19zntM2mznY82qxZse550qVtRymulltrhl0SEyHlOifX9mJjIW9rYWTWseBVtzaDEW5RzQjkI8sYkRx4iIU3i7OORLnfetwxqHrZlLqjIgWtma1A3Etk3m84VPzPE3Sg1ANdVXhMSonhB+jLhILPbOhEF9trvPdevvKk8CCeZ+.vvJqrT9bYyvBCo3Dxu7xKKJrjWP.6vfu4dlL4WYobKspvozbO0QaJOyreSlY+mtmeECOHvrubAv6IbTu0MmzIxE.Y2gl3boKjR9GGPB9CdvV0KQjWwgftMfA3M7rOI1nl2Gq4kGMP+vWWyqGcRmW23Hc+Yxzpv1LSqOe+BCkXJ6eL.09mGfZAqhAsaXRtbk0Ktc01DJ2G579AV5uUggZcQ3s6Hmpt4nd8jgQ9BbCMSDJtgwBRXKZnoi2S4RbkPfHbBcGmf2jZ95Fka0juh59Pg5HxJ.PAnEhT7k4JZYgMGOZbL.jyBr27HcMjQd4dL.6KeVggxc6p.DuoLN1ArZ2Yg7e4+QAGnfiiGvB+LfzAX.MqTsRwVU7yANN3BXkMRAIYhR3goLz68k3XwVhg.vLxDdyizE6Iv4mJwvDdwyNdP82M.TWtxZEezIAnuDXMXGoweU.lu4QFLhHThn+i8.yvOGsLbqsa0Fr5cl0hfsxti7tvVxudTjLGWqQlV3KMiGl2idQDqxSH9hYjMbcK6KrCkMrthljkrZ+1fkcDlwM45oXebmkHGtsACe4k5r6Y8Xe6Y84ehe77kiJX6OC04kqy4sm8XTlPtrqtrX1kDCZRsXdwLqrTlfFpP7Z5b+1ywgO.k4wA3DGUHp2Gy+846IoXhtkSQUNTWhb32lEMgdYzvfUgdz8QzdbDeMC1qcksc2AWF4r8wEMI6585gOk+uOuPF2FUraW2AwsI3BZhTAohvKqLnS0JhxZgjL5Lnjjg+BVWZeM7IjiuaYrks9HEkFRVCbJ26DydBsI.WcQkzL.PwS4aMZHEAwMSjjEM8CwRDMAQJMnfGSNsiLKl02O25XlOj8SHiA9HuKZfjbgT6Q3Vg8G2VQorlZGzPpaWPVOtsyESoG+FtYzBpoYXyF7WxDoO+k3fyAJM0yC5oXFg7BYfEBQuFecXYUK4mwDEg4KfyCWk5GNtORMQHtmejAyMJyt+XpJXtjeerB4HoJxsFHw49OOGGnJqqjEuI9.mSIYL1RSAmHEnRUgWWSYbeogiIotsLZeDO9SPRUnNz5A5SGS9TmARlF1eBYtmjAstcjM5LRQBwqK0MUWj0HUTW9cks5XLxb.o5vBvmYS.HjgLsl.8ZP62dRVlZzOg5gr+fE8uZFCk.xTUKUOCn2H+BW.PzF6pQaeeXL0I8Y+AZiTneBjtPF6BRncIstuBBAMkTjh1dGfL1i1VstZGPmn8sfImNxxL0.IitRGHQ68OZzPcnyvWMNXSDRV6IoHOjfeD..e8DGhLszzIkph1Wl9AXRAJyU6f32W6PRRfJzoMRUyh+.jrQWZRcPWihD+PYEKMJ4niL5nYhNjlPQZrD4SFPdzJfgWCdxuHcgw3doL6L.vZM9cUf+jxDgvTt0.32lj4tYuC4AfW1ZLyG4EII5OBnHPdpCt5jbFJMTCvN7GI2pGf+iRArJ.ezksYnlXD2DPHZ+qKCKsrGKKICXiTEJlgEm.V4AfDaJKI09TAIPJUWAgIeyT.9A6WR46VFv9CXlOI09Zc.aAFhHbR.J4kFLXZt6E5wavDTltLKn9MeTAOlGLG25.O.YDvrfJpR6pf552xk5ArbYyX3HX8spu95TaLikeeuQrO.lISyK+SYCVQa+wrQpPvP8gU+Qt80S5OuV.jM2JqlOelUEWIP7ZDDxkYUgkWEz8XVSaHP1fxFZvplXbwU3DEVQHS1UxrbLm4WyazYpJsqczYtBm6MsKJ6hBLoyXFXR+CJzCTVSCk1UA8u5v5NX0lExiIQYWYoUVYUAw7qjHx3ZEc.rviPKqwJjgnDXXC+lVfJjNIPflQI26Ucz.BkubYN7QEyKbrLleUFv4e8WvBN+IEhzj1BlVHclM09M+pe0+787X5eIVOr5VJfi.+oAD42od0sqA9xVJnqU.wKSt9c36wuuEdWjib49OpXxj38B5ufeiuix8fP8kHdRmyEszIc9VsTUFFftGFPc+KIaau.7pbzuoC2493yKHJ4y3J7vRuW4HBLu3oYf4Ix+YytT3KY7VfnuRBMlu3B124hUj77Ieq3Di92NzXzKbxBR+oQn3ihiIFFGKRuDuNGaVr7uLGxHr8Y6WH5wymmgzM.KKahs53nCWu6ImjeYwUCvSEExmCl6qjOK0EwjuG0CwFST..FeOu8ltySrPeS0tnCgbodoAdBBqRenlwdl5RcPNd+.VqSMy16pBVr6pGwkFfIZRH1ElKWvm5ohF5n98kIWnq3YWPhc7E4ev04LhhYVM6x9QHgUVZ0kVM+RqlM5S5HzCKHZFpekiuagPB7PLtPDQsu5xNNgbIrRs3hU2jqE8BnglLjGeLJTnHJcjT2ffEla2HU45ObqTa231j+h+0sgLaVbqx0qkZsMp2rbqTUp0n8i7uWy1EBBmwas6UO9WZDFQR1Sk.LpbZvbfCYJ2pKke4r48HPg2kHPXalPSjEcTMZjc+sYUF0Haqhy1Kt72+S7iKEZDSb4FGqa6xDH4yYEBewOL9qRuJW8NVfMsMw22V+52aDx7visN2nfu33FaKK7YFEowGcrnAuqzHjaGKCk8T2krawwxHEwXFV8f2IHlosB6obzK9f8U3ZoiPcwFeFGn9XEI2.Huez76DFZh8xTiELixv2W50HWQaaJuBWabOzZrZmPYowiMb8i0cpZBY7g8lQo9qysEFaA5kNTyLyHjobrWBbzGyHvffgEOHdXQrLhLmXEKStsYL6oMlUCqu3.bCGeRZh1GYrafs8KKQBKj8487041hDoJ.k51.YzA68a+Im84449NSQl6zcE.eviQjNycb8xmgJ0Bb71u2IFs8d47lf3+lOgAw+P8iChmhqol1PhXXn30o.eXlg7uUXPtyzOri6JvRuOs1IFyYtMiS.7O64yrH9k3HmfvqTA7YRCxeTXnMch+Z.lcuzmS.4u3YLfbgmd7jpeHxpJTxIMbEmBbI+377gbeD1oRyROrR6vUk7h.VJWncLw6qcr7xk0lvOi8NTVni2S4DfWvLJbbj8FMOwkxs7xqtZlbAsbd0LqrRlkyE5UCj5fK0M12OT2X88U36D6M6DpHqOpvKzyOvOz+hGcJnEm8FJyHu+yXfb9O1u7tWLvq790HLj0AFBgA4aqnMB0TCOVB7VENYJSveQ+JKaf5Pk9SwsC9t81QRIFJ0WeypfWwBt2gKedEbrjzOxayMyUvfU8Rheriq2Wyuq2QbxEWji3AmWAcg7B4WckbBhABas3pBqJlcokVImmv1ubtUDymck74izUamyNfhRseTiJNde+K3JI+wij5xuQiTU0Nfu0.jRO9JuepM.I1IoZfj1C+W6JWsAnx7YoZsy5vGI+AZdMMs93jB7Mz.cpS9DTF3bWWsgjZtklUmAjOUpQphJJ3WWjDmTmkXtp7L1Ppxp94iOMDDi0cKb9PtASUo2fIf.ohmm7sDhi9cVQvKyUFoHM1mDHGWMXnNVgLYJeSCXbLZO1K33yhwMZrZk0audkJkwQDlfWAOKhvmBWiacvkV78msJpmUbLg9jolJdf0MOxuYEQ.Vub+HO6m4OZcvhAP5+rvkFauYsJXHOtn70o4hu5bDX9U0hofd0ep4SzMOxuuJLdCY7Jjk7silkzby6uQr4I2XBOoIARBBdghwQyRhsaVmZLkqdjeOfhfo7hmECbk.m7NpUbuc2wZJFqEENpdn3+rp6YJPUvmrqav4ZAG6KHF9nXsK.yUYe1tvOMWpfj6XVYzWMOqX2fRibXKMsILuO8FrD14Bkvb+pvamYg+2+l4KfeH31zy821w6A6uvWtMuJpOLPr4LY0.yAI1ZnlF4x2384k6sJTUSS24biX5jF3KXC8F04oaftssVMIPKfwZ3SdjsvM6qpYfne63YyesQlVZCcc+A+n0gCEH04kGyk24KgJ7ypqA+Ja8SmzINF7bgoyyOWLkK+ZD1uKeFKH7ZTzLwwhJcE7NiRkuIWCYv14vWjG1ZoDIdkPi1ulgWkqRudvdHSHvKvs9G7J5oK77Li+Uni+knpjIirq5YVDwqAKLnhucMYJwikjgjefFTEeeYMMwhNreEG1PNPtIJW.apMSaCQuDHUc9SoknInu5P8qIAa2f8JEefCfGicP.CSE+t.h8T8bX0QzzYvoI5zPpcII9+ferKT.mNocgBNExJULWamMxIwTiFRM6s.7ElMVljajiY4O1wumIK2PwwVMiw9x6Kt2C8tCLv4LPnmgnGT5j6K0WYQ4K69HrRfz66rzy20zhEg89.rZK86Aa8hYOpPHOQqapBrNKvcdIC+pXNsfxjWH15AwSI9uTL1It5puIUgzYchjv5OaSj2.aJ7WRj3WZKt89BK+FjWaWHExq8yy5aqrdreak8u39z4oQ9hmseZjcsug436sUx54.8YUxd5sgxjWTpuVLdgctFGkJryZldkdtJWSxW2riaWv3qt+qyvL0IWgC2CMm82pnaP5fV6IGAYDuGZKnWzLrd.Zr4IAQXuoMy3CHSH2IuY5Azx6MrZFePfZMXTudJnYSB6J12Dy1xnSxC4TKzP41ZpHlB72a+KddHmfeRD+teGD3.OrWRvtmppdJuQTSuquIWUxizcbo6d6UpXLkQdSN6cWZgT.ewzhiLenczayUejk9HqSot6M4p0nRK72xH6NLffSg30QWG2QUT6FQ2jIVOjZWjaCXGoPjcO6GcseevANdada6F5M4.eUFqOPSUtC8nWIDwjygMBOj9z25e5NE7GARdtO6WW38c7e7+w5+9dL9SRd4Yd+QRJ9P2Rx5Xuk7i7uX+e6+98N8hCWb8Y5qy4I5VmwiRr3QSXGcTh4+G96pDQThSj3DDk3O7e6mt0uOJw+9nDelMJwm8iNxeHms1QBZd1lVuF26+kOA9Mc1UqkkARZHnPx9+N.HjXJNm+eBXJA9K1QGnPriNPCCD4+KB7D91WTnD3o.xvateVAxPUbn1HUOikMk2Doijr7ts5kKzrI4oLzeq.8rXacZa.VR6INwew8pCdGLPyix20LzLM6ASGReYxVTiQF8YUfmHAID0ldyC+LdvDuGbHb11Dg4uxcbBMzjZSFkLsoe6OAc1jzB9RK5KcVeoy4K8R9Rm2W5kmj18+YHn+G4j6SDQfmE6KFO05POQNKZlZVRtu6nPy4qbA74qBmqN6tmW24LuHOPR1J58+XIwRa0zT0nl+5U7FDW62GYvRwgNMnOYaqMxXeuGMC9gzJPt1uuaAZdfirg3FFyCWI8c4hocNOvSLOtSNORZL0pRGMupJ9hSQSp4honwUseV63IpIOKtwkM8Q4Bm8Hv2f9rrcVE+ttyqM1YV.7ZNOffeYBgW14576D9LBo8G3lLh69S3THrup8NYrpmvG8n2sjseGI7pD.LmwdLI8A0QIXGwSMUCmJwh47+NcrXhunq8+qdQhQ3YRkSDCq3w1A+6ZG4XGmtBlO1eltX47HmPZj7bJ92614ZoCqnXAw2lBhWg7sGgbvkD7aAt1arYKd3esqy2Zi5Oju8FU3oeADfb2pM+Cq27Aat08mxAZ94m9GnI8jPZieBqz0LAalXiRi8wKX5IWesPLzVH5U4D9cVSHXVdpkyW1FAVGdbxTjMSv7aOcFj1SO44ZE8x6QCKUKDLy6V2rC.LjCvj06oQJlHxQ+Kv1vIYKxl8FRFc8GWroetvQpR0qszL0+0oOCWHdqMmtKMeU6d4NmCMRulPN9L3dWU5IMRw5UomDrWw1.Vz+sKTUVEIY7pyn9jwje8MXMp+DE2mWqhYmBVbbpSuyt0GulWgB5O+pCm9s4.c5h7D1M+W976WGlq76JiwPoNFZOsC83pwJktLIG.aUIemMmiqFNMeH+mH0PX6sm1oi2tJPCEm0FlcVaXtYsgKMqML+r1vkm0FtxQ2Pr0GEGYoMjtVDLIqQEpE0IcOjvjmOw+OYLa7CA